react-native-code-update
v0.5.6
Published
react native code update
Downloads
70
Readme
react-native-code-update
##更新请求地址为:
{code.update.url}/app/checkUpdate?platform=ios&app_id={yourAppId}&app_version_code={currentAppVersionCode}&js_version_code={currentJSVersionCode}
返回内容:res
{
success: 1;
updateType: 0;
} success:标示请求成功,
updateType:
0表示没有更新,
1表示为android平台时检测到新的apk安装包, res.versionName版本名称,res.versionCode:版本好,res.downloadUrl 下载连接,res.changeLog 更新日志
2表示有js包更新,res.jsBundleVersion js版本名称, res.jsBundleVersionCode js版本号,res.downloadUrl,res.changeLog
##ios:
info.plist中增加:
code.update.app_id(string) yourAppId
code.update.url(string) http://xxxxx
jsCodeLocation = [RCTUpdateManager bundleURL];
RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation moduleName:@"XXX" initialProperties:nil
launchOptions:launchOptions];
##android 在Application.java
@Override
public void onCreate() {
super.onCreate();
...
...
AsyncHttpClient client = new AsyncHttpClient();//http请求用
RCTUpdateManager.init("{yourAppName(会在存储中创建目录保存更新文件)}","appId","更新url(参考ios配置)",this,client);
}
private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
...
...
@Override
protected List<ReactPackage> getPackages() {
//mAliPushPackage = new AliPushPackage(); // <------ Initialize the Package
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
...
new RCTUpdatePackage()
);
}
}
##js
import ReactNative,{NativeModules} from 'react-native'
var UpdateManager = NativeModules.UpdateManager;
UpdateManager.checkUpdate(function (jsonObject) {
if (jsonObject && jsonObject.updateType) {
UpdateManager.doUpdate(jsonObject, function (success) {
if (success == "true") {
// Platform.OS==='android' && jsonObject.updateType == 2 && UpdateManager.askForReload();
if(jsonObject.updateType == 2){
if(Platform.OS==='android'){
UpdateManager.askForReload();
}else {
Alert.alert(
'提示',
'有数据更新是否刷新?',
[
{text: '刷新', onPress: () => {
UpdateManager.askForReload();
}},
{text: '取消', onPress: () => {}, style: 'cancel'},
]
)
}
}
}else {
Alert.alert("提示,下载失败,请稍候再试");
}
});
}
});