mirror of
				https://gitcode.com/gh_mirrors/re/react-native-pushy.git
				synced 2025-10-31 21:33:12 +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
	 DengYun
					DengYun