【问题标题】:Handle offline state when starting an ionic app on ios在 ios 上启动 ionic 应用程序时处理离线状态
【发布时间】:2017-03-06 13:44:08
【问题描述】:

我正在 ionic 1 上开发和应用程序,并尝试在应用程序以离线状态启动的情况下,我已经看到 http://www.joshmorony.com/monitoring-online-and-offline-states-in-an-ionic-application/Ionic: Check Internet Connection using Cordova 并且实际上以这段代码结束:

console.log("checking network", $cordovaNetwork);

      if(!navigator.onLine){
        $ionicPopup.confirm({
          title: "Internet disconnected!",
          content: "Please check your connection before moving on"
        })
        .then(function(result){
          if(!result){
            ionic.Platform.exitApp();
          }
        });
      }

这部分有效,问题是当我从零启动应用程序(杀死它并重新打开)时,由于无法加载 js 文件而开始出现错误(加载资源失败:互联网连接... ),并且该应用永远不会到达检查连接线,只会出现在可怕的白屏上。

从日志中我可以看到唯一实际的角度错误与 firebase 相关(模块 firebase 不可用),我相信这是避免应用程序访问我的检查连接代码,但我不知道是否下载并保持对 firebase js 的本地引用是正确的解决方案,并让代码向前移动 firebase 错误。

【问题讨论】:

  • 我没有使用 firebase 并且有同样的问题。该应用程序位于白色屏幕上。你找到解决办法了吗?
  • 嗨,我刚刚添加了一个答案,如果有帮助,请告诉我。

标签: ios angularjs cordova ionic-framework firebase


【解决方案1】:

实际上问题分为两部分,首先,首先请记住,在开发模式下工作时,当您运行 ionic 应用程序时,它需要连接到您的开发机器,否则它不会运行任何代码,所以如果你尝试在这样运行时测试离线检查,你总是会得到一个白屏,基本上是应用程序从你的开发机器加载资源。

现在对于在没有网络连接时向用户显示错误的实际要求,此代码为我工作

console.log("checking network", $cordovaNetwork);

  if(!navigator.onLine){
    $ionicPopup.confirm({
      title: "Internet disconnected!",
      content: "Please check your connection before moving on"
    })
    .then(function(result){
      if(!result){
        ionic.Platform.exitApp();
      }
    });
  }

用于测试,正如@gerdi 建议的那样“您可以通过运行到具有 ionic run android 的设备来测试离线状态(在开发模式下)”

【讨论】:

  • 所以没有网络就无法运行?
  • 您可以通过运行到带有ionic run android的设备来测试离线状态(在开发模式下)
  • 你说得对,我把它添加到答案中
猜你喜欢
  • 2013-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-06
  • 1970-01-01
  • 2016-09-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多