diff --git a/android/src/main/java/cn/reactnative/modules/update/UpdateContext.java b/android/src/main/java/cn/reactnative/modules/update/UpdateContext.java index 1902701..a03f6dd 100644 --- a/android/src/main/java/cn/reactnative/modules/update/UpdateContext.java +++ b/android/src/main/java/cn/reactnative/modules/update/UpdateContext.java @@ -5,6 +5,7 @@ import android.content.SharedPreferences; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.util.Log; +import com.facebook.react.ReactInstanceManager; import java.util.concurrent.Executor; import java.util.concurrent.Executors; @@ -21,6 +22,7 @@ public class UpdateContext { private Executor executor; public static boolean DEBUG = false; + private static ReactInstanceManager mReactInstanceManager; public UpdateContext(Context context) { this.context = context; @@ -160,6 +162,15 @@ public class UpdateContext { this.clearUp(); } + + public static void setCustomInstanceManager(ReactInstanceManager instanceManager) { + mReactInstanceManager = instanceManager; + } + + public ReactInstanceManager getCustomReactInstanceManager() { + return mReactInstanceManager; + } + public static String getBundleUrl(Context context) { return new UpdateContext(context.getApplicationContext()).getBundleUrl(); } diff --git a/android/src/main/java/cn/reactnative/modules/update/UpdateModule.java b/android/src/main/java/cn/reactnative/modules/update/UpdateModule.java index 92ccc53..5038479 100644 --- a/android/src/main/java/cn/reactnative/modules/update/UpdateModule.java +++ b/android/src/main/java/cn/reactnative/modules/update/UpdateModule.java @@ -127,7 +127,11 @@ public class UpdateModule extends ReactContextBaseJavaModule{ updateContext.switchVersion(hash); Activity activity = getCurrentActivity(); Application application = activity.getApplication(); - ReactInstanceManager instanceManager = ((ReactApplication) application).getReactNativeHost().getReactInstanceManager(); + ReactInstanceManager instanceManager = updateContext.getCustomReactInstanceManager(); + + if (instanceManager == null) { + instanceManager = ((ReactApplication) application).getReactNativeHost().getReactInstanceManager(); + } try { Field jsBundleField = instanceManager.getClass().getDeclaredField("mJSBundleFile"); diff --git a/lib/getHost.js b/lib/getHost.js index b5e97b1..b0a46aa 100644 --- a/lib/getHost.js +++ b/lib/getHost.js @@ -1,4 +1,4 @@ -let availableDomain = 'update.reactnative.cn'; +let availableDomain = 'update.react-native.cn'; function ping(domain, rejectImmediate) { return new Promise((resolve, reject) => { diff --git a/package.json b/package.json index 616ceca..2e21a5e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-native-update", - "version": "5.5.6", + "version": "5.5.7", "description": "react-native hot update", "main": "lib/index.js", "scripts": {