mirror of
https://gitcode.com/gh_mirrors/re/react-native-pushy.git
synced 2025-11-01 05:43:11 +08:00
[Fix] 更妥当的方式处理iOS更新后立即回滚的问题
This commit is contained in:
@@ -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];
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user