React Native的版本升级插件(仅是android), react-native版本需要0.17.0及以上
npm install react-native-upgrade-android --savenpm linklink成功命令行会提示
npm info Linking react-native-upgrade-android android dependency#####Android
// file: android/settings.gradle
...
include ':react-native-upgrade-android'
project(':react-native-upgrade-android').projectDir = new File(settingsDir, '../node_modules/react-native-upgrade-android/android')
// file: android/app/build.gradle
...
dependencies {
...
compile project(':react-native-upgrade-android')
}
android/app/src/main/java/<你的包名>/MainActivity.java中,public class MainActivity之前增加:
importcom.lenny.modules.upgrade.UpgradeModule;如果react-native-版本 <0.18.0
.addPackage(new MainReactPackage())之后增加:
.addPackage(newUpgradPackage())如果react-native-版本 >=0.18.0
在new MainReactPackage()之后增加
,newUpgradePackage()import Upgrade from 'react-native-upgrade-android';
// 使用前必须初始化类似如下:
componentDidMount(){const{
isSet,}=this.props;if(Platform.OS!=='ios'){Upgrade.init();}}开始下载
// 参数信息
downloadUrl: 下载apk地址(绝对地址)String
version: 要下载的版本号(防止重复下载)String
fileName: 保存的文件名String类似如下:
componentDidMount(){const{
isSet,}=this.props;if(Platform.OS!=='ios'){Upgrade.init();DeviceEventEmitter.addListener('progress',(e)=>{if(e.code==='0000'){// 开始下载this.setState({isLoading: true,});}elseif(e.code==='0001'){// 下载中,更新进度条this.setState({fileSize: e.fileSize,downSize: e.downSize,});}elseif(e.code==='0002'){// 下载完成this.setState({fileSize: e.fileSize,downSize: e.downSize,});}});}}