问题描述
下面的代码工作正常,但预期的情况是当应用程序处于活动状态并在前台运行时,它也假设检查更新并显示对话框,但它仅在应用程序重新启动时检查..
我检查了 official documentations 的 codepush,但这里没有任何问题..为什么当应用程序在前台处于活动状态时它不检查更新?
const App = () => {
let navigator;
const [restartAllowed,setRestartAllowed] = useState(false);
const [progress,setProgress] = useState(null);
const [syncmessage,setSyncmessage] = useState('');
useEffect(() => {
LogBox.ignoreLogs([
'ReactNativeFiberHostComponent',// Todo: Remove when fixed:react-native-scrollable-tab-view
'VirtualizedLists should never be nested',]);
if (navigator) {
setNavigator(navigator);
}
SplashScreen.hide();
syncImmediate();
},[navigator]);
const codePushDownloadDidProgress = (progress) => {
setProgress(progress);
};
const codePushStatusDidChange = (syncStatus) => {
switch (syncStatus) {
case CodePush.SyncStatus.CHECKING_FOR_UPDATE:
setProgress(true);
setSyncmessage('CHECKING_FOR_UPDATE');
break;
case CodePush.SyncStatus.DOWNLOADING_PACKAGE:
setProgress(true);
setSyncmessage('DOWNLOADING_PACKAGE');
break;
case CodePush.SyncStatus.AWAITING_USER_ACTION:
setProgress(true);
setSyncmessage('AWAITING_USER_ACTION');
break;
case CodePush.SyncStatus.INSTALLING_UPDATE:
setProgress(true);
setSyncmessage('INSTALLING_UPDATE');
break;
case CodePush.SyncStatus.UP_TO_DATE:
setProgress(false);
setSyncmessage('UP_TO_DATE');
break;
case CodePush.SyncStatus.UPDATE_IGnorED:
setProgress(false);
setSyncmessage('UPDATE_IGnorED');
break;
case CodePush.SyncStatus.UPDATE_INSTALLED:
setProgress(false);
setSyncmessage('UPDATE_INSTALLED');
break;
case CodePush.SyncStatus.UNKNowN_ERROR:
setProgress(false);
setSyncmessage('UNKNowN_ERROR');
break;
}
};
const syncImmediate = () => {
console.log('synced');
CodePush.sync(
{
checkFrequency: codePush.CheckFrequency.ON_APP_RESUME,installMode: CodePush.InstallMode.IMMEDIATE,updateDialog: {
appendReleaseDescription: true,optionalUpdateMessage:
'Updates here..',title: 'New Updates',optionalInstallButtonLabel: 'Yes',optionalIgnoreButtonLabel: 'No',},codePushStatusDidChange,codePushDownloadDidProgress,);
};
return (
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)