控制台文档
帮助文档
快速开始
注册新用户
创建应用
cpcn-client桌面工具
发布新版本
热更新之React Native App
手动安装cpcn-react-native(Android)
手动安装cpcn-react-native(iOS)
示例:React Native App集成CodePush热更新,从零开始
React Native App集成CodePush热更新,Function组件编程方式完整代码示例
使用模板创建项目
CodePush热更新费用规则参考
用户行为分析,让你更懂你的用户-Footprint
用户行为分析之React Native App
Footprint常见问题解答
开发者反利计划,送京东购物卡
技术支持与开发服务
关于我们

React Native App集成CodePush热更新,Function组件编程方式完整代码示例

以下是用Function组件编程方式(使用Hook)在React Native App中集成CodePush热更新的完整代码示例。
若要了解详细步骤和注意事项,请点击这里
import React, { useEffect, useState } from 'react';
import cpcn from 'cpcn-react-native';
import { SafeAreaView, View, Text, Button, Modal } from 'react-native';
const App = () => {
const [upgradeState, setUpgradeState] = useState(0);
const [{ upgradeAllBytes, upgradeReceived }, setUpgradeData] = useState({ upgradeAllBytes: 1, upgradeReceived: 0 });
useEffect(() => {
cpcn.check({
//
checkCallback: (remotePackage, agreeContinueFun) => {
if(remotePackage){
// remotePackage
// upgradeState 1
setUpgradeState(1);
}
},
//
downloadProgressCallback: (downloadProgress) => {
//
setUpgradeData({
upgradeReceived: downloadProgress.receivedBytes, //
upgradeAllBytes: downloadProgress.totalBytes //
});
},
//
installedCallback: (restartFun) => {
// this.state.upgradeState 0
setUpgradeState(0);
// App使
restartFun(true);
}
});
}, []);
const upgradeContinue = () => {
//
cpcn.agreeContinue(true);
// this.state.upgradeState 2
setUpgradeState(2);
}
return (
<SafeAreaView>
<View>
<Text>Ver: 1</Text>
</View>
<Modal
visible={upgradeState > 0}
transparent={true}>
<View style={{padding:18, backgroundColor:"rgba(10,10,10,0.6)", height:"100%", display:"flex", flexDirection:"row", alignItems:"center"}}>
<View style={{backgroundColor:"#fff", width:"100%", padding:18}}>
{
upgradeState == 1
&&
<View>
<View style={{paddingBottom:20}}>
<Text></Text>
</View>
<View>
<Button title="" onPress={upgradeContinue}/>
</View>
</View>
}
{
upgradeState == 2
&&
<View>
<Text style={{textAlign:"center"}}>{upgradeReceived} / {upgradeAllBytes}</Text>
</View>
}
</View>
</View>
</Modal>
</SafeAreaView>
);
};
export default App;
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX