1
0
mirror of https://gitcode.com/gh_mirrors/re/react-native-pushy.git synced 2025-10-31 21:33:12 +08:00
Code Issues Packages Projects Releases Wiki Activity GitHub Gitee

[Fix] 更妥当的方式处理iOS更新后立即回滚的问题

This commit is contained in:
DengYun
2019-08-16 13:21:47 +08:00
parent 56e6d790c1
commit 551cbc33cc

View File

@@ -95,7 +95,6 @@ RCT_EXPORT_MODULE(RCTHotUpdate);
NSString *loadVersioin = curVersion; NSString *loadVersioin = curVersion;
BOOL needRollback = (!ignoreRollback && isFirstTime == NO && isFirstLoadOK == NO) || loadVersioin.length<=0; BOOL needRollback = (!ignoreRollback && isFirstTime == NO && isFirstLoadOK == NO) || loadVersioin.length<=0;
ignoreRollback = true;
if (needRollback) { if (needRollback) {
loadVersioin = lastVersion; loadVersioin = lastVersion;
@@ -115,7 +114,10 @@ RCT_EXPORT_MODULE(RCTHotUpdate);
[defaults synchronize]; [defaults synchronize];
// ...need clear files later // ...need clear files later
} }
else if (isFirstTime){ else if (isFirstTime && !ignoreRollback){
// bundleURL may be called many times, ignore rollbacks before process restarted again.
ignoreRollback = true;
NSMutableDictionary *newInfo = [[NSMutableDictionary alloc] initWithDictionary:updateInfo]; NSMutableDictionary *newInfo = [[NSMutableDictionary alloc] initWithDictionary:updateInfo];
newInfo[paramIsFirstTime] = @(NO); newInfo[paramIsFirstTime] = @(NO);
[defaults setObject:newInfo forKey:keyUpdateInfo]; [defaults setObject:newInfo forKey:keyUpdateInfo];
@@ -143,6 +145,10 @@ RCT_EXPORT_MODULE(RCTHotUpdate);
return NO; return NO;
} }
- (void)init {
}
- (NSDictionary *)constantsToExport - (NSDictionary *)constantsToExport
{ {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
@@ -258,7 +264,6 @@ RCT_EXPORT_METHOD(reloadUpdate:(NSDictionary *)options)
// reload // reload
dispatch_async(dispatch_get_main_queue(), ^{ dispatch_async(dispatch_get_main_queue(), ^{
ignoreRollback = false;
[_bridge setValue:[[self class] bundleURL] forKey:@"bundleURL"]; [_bridge setValue:[[self class] bundleURL] forKey:@"bundleURL"];
[_bridge reload]; [_bridge reload];
}); });