微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决当应用程序在前台运行时,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 举报,一经查实,本站将立刻删除。