刚创建的React Native 微信公众号,欢迎微信扫描关注订阅号,每天定期会分享react native 技术文章,移动技术干货,精彩文章技术推送。同时可以扫描我的微信加入react-native技术交流微信群。欢迎各位大牛,React Native技术爱好者加入交流!
源码已开源到Github,地址请点击:react-native-upgrade 欢迎大家star,fork.....
App版本升级想必大家都不陌生。原生开发中App升级方式有很多种,Android和iOS也不尽相同。大致区别如下:
(1)iOS中由于不能从App Store之外下载ipa文件进行安装,所以在iOS环境下唯一的更新方式就是提醒用户,然后跳转到App Store商店下对应App进行更新。多数情况下,iPhone在Wifi网络下都会自动静默完成版本更新。
(2)Android的方式则大有不同,Apk由于不受App市场及手机限制,可以随意安装Apk文件,所以大部分情况下都会避开市场下载,直接从自己服务器下拉最新Apk进行更新,所以也就出现了首页发现新版本、版本检测等一些功能。关于Android的版本更新,可以看我之前的一篇博客:Android实现App版本自动更新
React Native实现版本更新,需要依赖原生开发环境的支持。例如Android中需要做下载提示,进度提示,下载完成后的跳转安装。iOS需要与App Store中的版本做比较,以及跳转到App Store更新。为了简便,遂将其封装成library,供大家参考使用。
一、功能介绍
Android:
(1)版本检测
(2)版本下载
(3)进度提示
(4)下载安装
iOS:
(1)版本检测
(2)跳转App Store
二、配置
【 Android 平台 】
1. 将upgrade包拷贝到你的Android项目包目录下。
2. 在AndroidMainfest.xml文件下添加权限和服务配置
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
【 iOS 平台 】
将upgrade拷贝到项目目录即可。
三、使用
Http.get(Api.api_checkupdate, null, false, (result)=>{
if(result.ok) {
// 下载最新Apk
NativeModules.upgrademodule.upgrade(this.state.apkUrl);
}
});
NativeModules.upgrade.upgrade('1253360366',(msg) =>{
if('YES' == msg) {
//跳转到APP Stroe
NativeModules.upgrade.openAPPStore('1253360366');
} else {
Toast.show('当前为最新版本');
}
})