在 Cordova 应用程序中检测 Internet-Loss

Posted

技术标签:

【中文标题】在 Cordova 应用程序中检测 Internet-Loss【英文标题】:Detect Internet-Loss in Cordova app 【发布时间】:2016-06-29 10:00:59 【问题描述】:

在我在 android 5 设备上运行的 cordova-app 中,我需要知道设备是否离线。我是按照cordova-documentation做的:

document.addEventListener("offline", onOffline, false);

function onOffline() 
  // Handle the offline event

为了测试代码,我已将我的 Android 设备(没有移动数据连接)连接到已连接到互联网的 WIFI 接入点。

只要我关闭 WIFI 接入点,“离线”事件就会被触发,我的应用程序就会知道它。到目前为止一切顺利。

不幸的是,有一个用例,此代码示例不起作用:

图像相同的情况:Android 设备连接到 WIFI 接入点,该接入点连接到互联网。

如果我现在断开 WIFI 接入点(拉 LAN 电缆),但让 hotsport 继续运行,我的 cordova 应用程序将永远不会知道它。 用户不能再做互联网相关的事情了(因为显然没有互联网),但是 "offline" 事件永远不会被触发!

有解决办法吗?如何检查设备是否断开互联网连接,是否仍有活动的 WIFI 连接?

【问题讨论】:

您使用的插件在您的特定情况下显然没有用。无论如何,当您告诉“用户不能再做与互联网相关的事情”时,这意味着什么?如果没有互联网,您应该从您的 API 收到“互联网不可用”的答案,并检查您的 ajax 调用中的错误(如果您使用它们)。检查此连接状态,您可以决定要做什么。 感谢您的评论。我认为这是一个很好的解决方案,所以我去了。当 API-ajax 调用失败时,我知道没有互联网(即使有 wifi),所以我将其显示给用户。 好,我更改了答案中的评论,以便您接受:) 你的问题很好。我也面临同样的问题。 【参考方案1】:

您使用的插件显然在您的特定情况下没有用。无论如何,当您告诉“用户不能再做与互联网相关的事情”时,这意味着什么?如果没有互联网,您应该从您的 API 收到“互联网不可用”的答案,并检查您的 ajax 调用中的错误(如果您使用它们)。检查此连接状态,您可以决定要做什么

【讨论】:

以上是关于在 Cordova 应用程序中检测 Internet-Loss的主要内容,如果未能解决你的问题,请参考以下文章

Cordova:无论如何,是不是可以在 Javascript 中检测 iOS 应用程序是作为调试版还是作为发布版构建的?

Intel XDK 使用 cordova 插件检测来电

Cordova 深层链接 - 未从通用链接中检测到查询参数

Cordova:有没有办法检测语音听写是不是在 iOS 上结束

在 Cordova 中检测倒置屏幕

Ionic 应用程序未在 iOS 上检测到 iBeacons (cordova-plugin-estimote)