当应用程序在前台运行时,Reactnative codepush 不检查更新

问题描述

下面的代码工作正常,但预期的情况是当应用程序处于活动状态并在前台运行时,它也假设检查更新并显示对话框,但它仅在应用程序重新启动时检查..

我检查了 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 (将#修改为@)