关于react-native-updater-client
package.json
中引用:
"react-native-updater-client": "git+http://172.15.16.186/ReactNative/RNUpdaterClient.git#RN0.33"
手动配置步骤:
1)APP文件夹build.gradle中添加
compile project(':react-native-updater-client')
2)Android文件夹settings.gradle中添加
include ':react-native-updater-client'
project(':react-native-updater-client').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-updater-client/android')
3)Java文件中的MainApplication.java中使用UpdateReactNativeHost
替换原生的ReactNativeHost
private ReactNativeHost mReactNativeHost;
@Override
public ReactNativeHost getReactNativeHost() {
if(mReactNativeHost!=null){
return mReactNativeHost;
}
instanceHost();
return mReactNativeHost;
}
private void instanceHost() {
if (mReactNativeHost != null) {
return;
}
mReactNativeHost = new UpdateReactNativeHost(MainApplication.this) {
@Override
public boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
……
);
}
@Nullable
@Override
protected String getJSBundleFile() {
return super.getJSBundleFile();
}
@Override
protected Headers getHeaders() {
Headers.Builder headers = new Headers.Builder()
.add("Accept", "application/json");
return headers.build();
}
@Override
protected DownloadProgressCallback getDownloadProgressCallback() {
return MainApplication.this;
}
@Override
protected String getUpdateMetadataUrl() {
return Constant.UPDATE_JS_URL;
}
@Override
protected String getUpdateMetadataPlatform() {
return "android";
}
@Override
protected String getUpdateMetadataChannel() {
return "self";
}
};
}
4)Java文件中的PluginList.java中配置
@ReactMethod
public void getJSCodeVersion(Callback callback) {
WritableMap result = Arguments.createMap();
result.putString("jsCodeVersion", UpdaterManage.getInstance().getLocalVersion());
String jsPath = UpdaterManage.getInstance().getLatestJSCodeLocation();
result.putString("jsPath",jsPath == null ? "" : jsPath);
callback.invoke(result);
}