React Native客户端 SDK 插件用法
下载并链接 CodePush 插件,以及应用询问 CodePush 从何处获取正确的 JS 捆绑包后,只需将必要的代码添加到应用以控制以下策略:
何时 (以及) 更新检查多久一次? (例如应用启动,为了响应单击设置页中的按钮,请定期以固定的时间间隔)
当更新可用时,如何向最终用户显示它?
最简单的方法就是"CodePush-ify"应用的根组件。 为此,可以选择以下两个选项之一:
选项 1:使用高序组件
codePush包装根组件:import codePush from "react-native-code-push"; class MyApp extends Component { } MyApp = codePush(MyApp);选项 2:使用 ES7 修饰器 语法:
备注
在 Pendingl 6.x 挂起的建议更新中尚不支持修饰器。 可能需要通过安装和使用 -preset-react-native-stage-0 来启用它。
import codePush from "react-native-code-push"; @codePush class MyApp extends Component { }
默认情况下,CodePush 将检查每个应用启动的更新。 如果更新可用,它将以无提示方式下载,在下次重启应用时安装 (最终用户或 OS) 显式重启应用,这可确保最终用户获得最低侵入性的体验。 如果可用更新是必需的,则将立即安装它,确保最终用户尽快获取它。
如果希望应用更快发现更新,还可以选择每次应用从后台恢复时与 CodePush 服务器同步。
let codePushOptions = { checkFrequency: codePush.CheckFrequency.ON_APP_RESUME };
class MyApp extends Component {
}
MyApp = codePush(codePushOptions)(MyApp);
或者,如果希望对检查发生的时间进行精细控制 (如按下按钮或计时器间隔) ,则随时都可以使用 调用 ,并可以选择通过指定手动 来关闭 CodePush.sync() SyncOptions CodePush 的自动检查 checkFrequency :
let codePushOptions = { checkFrequency: codePush.CheckFrequency.MANUAL };
class MyApp extends Component {
onButtonPress() {
codePush.sync({
updateDialog: true,
installMode: codePush.InstallMode.IMMEDIATE
});
}
render() {
<View>
<TouchableOpacity onPress={this.onButtonPress}>
<Text>Check for updates</Text>
</TouchableOpacity>
</View>
}
}
MyApp = codePush(codePushOptions)(MyApp);
如果要显示更新确认对话框 ("活动安装") ,请配置安装可用更新时 (例如强制立即重启) 或以任何其他方式自定义更新体验,请参阅 API 参考,了解如何调整此默认行为。 codePush()
备注
如果使用的是Redux和Redux Saga,则也可使用react-native-code-push-saga模块,该模块允许你自定义何时以可能更简单/更习惯的方式调用 。 sync