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.
- package/ios/RCTPushy/RCTPushy.mm +9 -10
- package/package.json +1 -1
- package/src/client.ts +14 -0
- package/src/type.ts +2 -0
package/ios/RCTPushy/RCTPushy.mm
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
349
|
+
|
|
351
350
|
|
|
352
351
|
// clear other package dir
|
|
353
352
|
[self clearInvalidFiles];
|
package/package.json
CHANGED
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 {
|