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){
setUpgradeState(1);
}
},
downloadProgressCallback: (downloadProgress) => {
setUpgradeData({
upgradeReceived: downloadProgress.receivedBytes,
upgradeAllBytes: downloadProgress.totalBytes
});
},
installedCallback: (restartFun) => {
setUpgradeState(0);
restartFun(true);
}
});
}, []);
const upgradeContinue = () => {
cpcn.agreeContinue(true);
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;