Skip to content

Commit 4aaa3c1

Browse files
committed
Update version to 10.37.1 in package.json and improve hash handling in UpdateModuleImpl.java
1 parent a8e72e6 commit 4aaa3c1

File tree

5 files changed

+27
-41
lines changed

5 files changed

+27
-41
lines changed

Example/testHotUpdate/bun.lock

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
"react-native-paper": "^5.14.5",
1414
"react-native-safe-area-context": "^5.6.2",
1515
"react-native-svg": "^15.15.0",
16-
"react-native-update": "^10.36.2",
16+
"react-native-update": "^10.37.0",
1717
"react-native-vector-icons": "^10.3.0",
1818
},
1919
"devDependencies": {
@@ -1429,7 +1429,7 @@
14291429

14301430
"react-native-svg": ["[email protected]", "", { "dependencies": { "css-select": "^5.1.0", "css-tree": "^1.1.3", "warn-once": "0.1.1" }, "peerDependencies": { "react": "*", "react-native": "*" } }, "sha512-/Wx6F/IZ88B/GcF88bK8K7ZseJDYt+7WGaiggyzLvTowChQ8BM5idmcd4pK+6QJP6a6DmzL2sfOMukFUn/NArg=="],
14311431

1432-
"react-native-update": ["react-native-update@10.36.2", "", { "dependencies": { "nanoid": "^3.3.3", "react-native-url-polyfill": "^2.0.0" }, "peerDependencies": { "react": ">=16.8.0", "react-native": ">=0.59.0" } }, "sha512-X/PLm5ESFftT2/Uz4n6xyOd29JiABAkroJZD++dZwQrQ+DHe86Kj5KWWMd6YS2SFJEYeVyaovfYhj7UMHZd4fw=="],
1432+
"react-native-update": ["react-native-update@10.37.0", "", { "dependencies": { "nanoid": "^3.3.3", "react-native-url-polyfill": "^2.0.0" }, "peerDependencies": { "react": ">=16.8.0", "react-native": ">=0.59.0" } }, "sha512-rvB8lr4g8uLY623ls4FzioJtriLQxDZCH+nDlR1d/9+wzxwfifvhRVqk0Y5UrVCpaMg2QoHpDU3uFaXwMioU2g=="],
14331433

14341434
"react-native-url-polyfill": ["[email protected]", "", { "dependencies": { "whatwg-url-without-unicode": "8.0.0-3" }, "peerDependencies": { "react-native": "*" } }, "sha512-My330Do7/DvKnEvwQc0WdcBnFPploYKp9CYlefDXzIdEaA+PAhDYllkvGeEroEzvc4Kzzj2O4yVdz8v6fjRvhA=="],
14351435

Example/testHotUpdate/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
"react-native-paper": "^5.14.5",
2222
"react-native-safe-area-context": "^5.6.2",
2323
"react-native-svg": "^15.15.0",
24-
"react-native-update": "^10.36.2",
24+
"react-native-update": "^10.37.0",
2525
"react-native-vector-icons": "^10.3.0"
2626
},
2727
"devDependencies": {

android/src/main/java/cn/reactnative/modules/update/UpdateModuleImpl.java

Lines changed: 18 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -134,13 +134,21 @@ public void onDownloadFailed(Throwable error) {
134134
}
135135
}
136136

137-
public static void reloadUpdate(final UpdateContext updateContext,final ReactApplicationContext mContext, final ReadableMap options, final Promise promise) {
137+
public static void reloadUpdate(final UpdateContext updateContext, final ReactApplicationContext mContext, final ReadableMap options, final Promise promise) {
138138
final String hash = options.getString("hash");
139+
restartApp(updateContext, mContext, hash, promise);
140+
}
141+
142+
143+
public static void restartApp(final UpdateContext updateContext, final ReactApplicationContext mContext, final String hash, final Promise promise) {
139144
UiThreadUtil.runOnUiThread(new Runnable() {
140145
@Override
141146
public void run() {
142-
143-
updateContext.switchVersion(hash);
147+
// 如果提供了 hash,则切换版本
148+
if (hash != null && updateContext != null) {
149+
updateContext.switchVersion(hash);
150+
}
151+
144152
final Context application = mContext.getApplicationContext();
145153
JSBundleLoader loader = JSBundleLoader.createFileLoader(UpdateContext.getBundleUrl(application));
146154
try {
@@ -166,6 +174,7 @@ public void run() {
166174
} catch (Throwable err) {
167175
final Activity currentActivity = mContext.getCurrentActivity();
168176
if (currentActivity == null) {
177+
promise.reject(err);
169178
return;
170179
}
171180
try {
@@ -203,49 +212,25 @@ public void run() {
203212

204213
// Invoke the reload method with a reason
205214
reloadMethod.invoke(reactHost, "react-native-update");
215+
promise.resolve(true);
206216
} catch (Throwable e) {
207217
currentActivity.runOnUiThread(new Runnable() {
208218
@Override
209219
public void run() {
210220
currentActivity.recreate();
211221
}
212222
});
223+
promise.resolve(true);
213224
}
214225
}
215-
promise.resolve(true);
216226
}
217227
});
218228
}
219229

230+
220231
public static void restartApp(final ReactApplicationContext mContext, final Promise promise) {
221-
UiThreadUtil.runOnUiThread(new Runnable() {
222-
@Override
223-
public void run() {
224-
try {
225-
final Context application = mContext.getApplicationContext();
226-
ReactInstanceManager instanceManager = ((ReactApplication) application).getReactNativeHost().getReactInstanceManager();
227-
228-
instanceManager.recreateReactContextInBackground();
229-
promise.resolve(true);
230-
231-
} catch (Throwable err) {
232-
promise.reject("restartApp failed: "+err.getMessage());
233-
Log.e("pushy", "restartApp failed", err);
234-
235-
final Activity currentActivity = mContext.getCurrentActivity();
236-
if (currentActivity == null) {
237-
return;
238-
}
239-
currentActivity.runOnUiThread(new Runnable() {
240-
@Override
241-
public void run() {
242-
currentActivity.recreate();
243-
}
244-
});
245-
}
246-
}
247-
});
248-
}
232+
restartApp(null, mContext, null, promise);
233+
}
249234

250235
public static void setNeedUpdate(final UpdateContext updateContext, final ReadableMap options, final Promise promise) {
251236
final String hash = options.getString("hash");
@@ -320,3 +305,4 @@ public static void getLocalHashInfo(UpdateContext updateContext, final String ha
320305
}
321306

322307
}
308+

android/src/newarch/cn/reactnative/modules/update/UpdateModule.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -104,27 +104,27 @@ public void downloadPatchFromPackage(ReadableMap options, final Promise promise)
104104

105105
@Override
106106
public void downloadPatchFromPpk(ReadableMap options, final Promise promise) {
107-
UpdateModuleImpl.downloadPatchFromPpk(updateContext,options,promise);
107+
UpdateModuleImpl.downloadPatchFromPpk(updateContext, options, promise);
108108
}
109109

110110
@Override
111111
public void reloadUpdate(ReadableMap options,Promise promise) {
112-
UpdateModuleImpl.reloadUpdate(updateContext, mContext, options,promise);
112+
UpdateModuleImpl.reloadUpdate(updateContext, mContext, options, promise);
113113
}
114114

115115
@Override
116116
public void restartApp(Promise promise) {
117-
UpdateModuleImpl.restartApp(mContext, promise);
117+
UpdateModuleImpl.restartApp(updateContext, mContext, null, promise);
118118
}
119119

120120
@Override
121121
public void setNeedUpdate(ReadableMap options,Promise promise) {
122-
UpdateModuleImpl.setNeedUpdate(updateContext, options,promise);
122+
UpdateModuleImpl.setNeedUpdate(updateContext, options, promise);
123123
}
124124

125125
@Override
126126
public void markSuccess(Promise promise) {
127-
UpdateModuleImpl.markSuccess(updateContext,promise);
127+
UpdateModuleImpl.markSuccess(updateContext, promise);
128128
}
129129

130130
@Override

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "react-native-update",
3-
"version": "10.37.0",
3+
"version": "10.37.1",
44
"description": "react-native hot update",
55
"main": "src/index",
66
"scripts": {

0 commit comments

Comments
 (0)