react-native-update 10.11.7 → 10.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -75,7 +75,7 @@ RCT_EXPORT_MODULE(RCTPushy);
75
75
  if (needClearPushyInfo) {
76
76
  [defaults setObject:nil forKey:keyPushyInfo];
77
77
  [defaults setObject:@(YES) forKey:KeyPackageUpdatedMarked];
78
- [defaults synchronize];
78
+
79
79
  // ...need clear files later
80
80
  }
81
81
  else {
@@ -97,7 +97,7 @@ RCT_EXPORT_MODULE(RCTPushy);
97
97
  newInfo[paramIsFirstTime] = @(NO);
98
98
  [defaults setObject:newInfo forKey:keyPushyInfo];
99
99
  [defaults setObject:@(YES) forKey:keyFirstLoadMarked];
100
- [defaults synchronize];
100
+
101
101
  }
102
102
 
103
103
  NSString *downloadDir = [RCTPushy downloadDir];
@@ -137,7 +137,7 @@ RCT_EXPORT_MODULE(RCTPushy);
137
137
  [defaults setObject:nil forKey:keyPushyInfo];
138
138
  }
139
139
  [defaults setObject:curVersion forKey:keyRolledBackMarked];
140
- [defaults synchronize];
140
+
141
141
  return lastVersion;
142
142
  }
143
143
 
@@ -176,7 +176,7 @@ RCT_EXPORT_MODULE(RCTPushy);
176
176
  [defaults setObject:nil forKey:KeyPackageUpdatedMarked];
177
177
  [self clearInvalidFiles];
178
178
  }
179
- [defaults synchronize];
179
+
180
180
 
181
181
  return ret;
182
182
  }
@@ -196,7 +196,7 @@ RCT_EXPORT_METHOD(setUuid:(NSString *)uuid resolver:(RCTPromiseResolveBlock)res
196
196
  @try {
197
197
  NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
198
198
  [defaults setObject:uuid forKey:keyUuid];
199
- [defaults synchronize];
199
+
200
200
  resolve(@true);
201
201
  }
202
202
  @catch (NSException *exception) {
@@ -214,7 +214,7 @@ RCT_EXPORT_METHOD(setLocalHashInfo:(NSString *)hash
214
214
  if (object && [object isKindOfClass:[NSDictionary class]]) {
215
215
  NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
216
216
  [defaults setObject:value forKey:[keyHashInfo stringByAppendingString:hash]];
217
- [defaults synchronize];
217
+
218
218
  resolve(@true);
219
219
  } else {
220
220
  reject(@"json格式校验报错", nil, nil);
@@ -295,7 +295,7 @@ RCT_EXPORT_METHOD(setNeedUpdate:(NSDictionary *)options
295
295
  newInfo[paramPackageVersion] = [RCTPushy packageVersion];
296
296
  [defaults setObject:newInfo forKey:keyPushyInfo];
297
297
 
298
- [defaults synchronize];
298
+
299
299
  resolve(@true);
300
300
  }else{
301
301
  reject(@"执行报错", nil, nil);
@@ -329,8 +329,7 @@ RCT_EXPORT_METHOD(reloadUpdate:(NSDictionary *)options
329
329
  }
330
330
  }
331
331
 
332
- RCT_EXPORT_METHOD(markSuccess:
333
- resolver:(RCTPromiseResolveBlock)resolve
332
+ RCT_EXPORT_METHOD(markSuccess:(RCTPromiseResolveBlock)resolve
334
333
  rejecter:(RCTPromiseRejectBlock)reject)
335
334
  {
336
335
 
@@ -347,7 +346,7 @@ RCT_EXPORT_METHOD(markSuccess:
347
346
  [pushyInfo removeObjectForKey:[keyHashInfo stringByAppendingString:lastVersion]];
348
347
  }
349
348
  [defaults setObject:pushyInfo forKey:keyPushyInfo];
350
- [defaults synchronize];
349
+
351
350
 
352
351
  // clear other package dir
353
352
  [self clearInvalidFiles];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-update",
3
- "version": "10.11.7",
3
+ "version": "10.12.0",
4
4
  "description": "react-native hot update",
5
5
  "main": "src/index",
6
6
  "scripts": {
package/src/client.ts CHANGED
@@ -163,6 +163,13 @@ export class Pushy {
163
163
  console.warn('web 端不支持热更新检查');
164
164
  return;
165
165
  }
166
+ if (
167
+ this.options.beforeCheckUpdate &&
168
+ (await this.options.beforeCheckUpdate()) === false
169
+ ) {
170
+ log('beforeCheckUpdate 返回 false, 忽略检查');
171
+ return;
172
+ }
166
173
  const now = Date.now();
167
174
  if (
168
175
  this.lastRespJson &&
@@ -275,6 +282,13 @@ export class Pushy {
275
282
  description,
276
283
  metaInfo,
277
284
  } = info;
285
+ if (
286
+ this.options.beforeDownloadUpdate &&
287
+ (await this.options.beforeDownloadUpdate(info)) === false
288
+ ) {
289
+ log('beforeDownloadUpdate 返回 false, 忽略下载');
290
+ return;
291
+ }
278
292
  if (!info.update || !hash) {
279
293
  return;
280
294
  }
package/src/type.ts CHANGED
@@ -81,6 +81,8 @@ export interface PushyOptions {
81
81
  dismissErrorAfter?: number;
82
82
  debug?: boolean;
83
83
  throwError?: boolean;
84
+ beforeCheckUpdate?: () => Promise<boolean>;
85
+ beforeDownloadUpdate?: (info: CheckResult) => Promise<boolean>;
84
86
  }
85
87
 
86
88
  export interface PushyTestPayload {