【发布时间】:2013-12-26 10:04:03
【问题描述】:
我是 Phonegap 和 JqueryMobile 的新手。我需要检查设备上的互联网连接。在网上看到一些解决方案后,我对方法感到困惑。一些解决方案建议使用 PG API,如网络管理器和连接,而一些使用 JQMobile 方法检查连接。
我的问题是更喜欢哪个?或者这两个实施的目标领域是什么?
【问题讨论】:
标签: android jquery-mobile cordova
我是 Phonegap 和 JqueryMobile 的新手。我需要检查设备上的互联网连接。在网上看到一些解决方案后,我对方法感到困惑。一些解决方案建议使用 PG API,如网络管理器和连接,而一些使用 JQMobile 方法检查连接。
我的问题是更喜欢哪个?或者这两个实施的目标领域是什么?
【问题讨论】:
标签: android jquery-mobile cordova
PhoneGap 有自己的功能来检查互联网连接是否可用。Here 是官方文档。
document.addEventListener("online", onOnline, false);
document.addEventListener("offline", onOffline, false);
你需要设置
<plugin name="NetworkStatus" value="org.apache.cordova.NetworkManager" /> 中的config.xml 权限用于android。
您必须在清单中添加一些权限,如下所示,
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"> </uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"> </uses-permission>
<uses-permission android:name="android.permission.INTERNET" />
【讨论】:
试试这个
工作示例:http://jsfiddle.net/Gajotres/d5XYR/
在这种情况下,计时器将每 100 毫秒检查一次互联网连接,并将最终结果设置为 javascript 全局变量。
一切都取决于这一行:
window.navigator.onLine -- it will be false if the user is offline.
最终解决方案:
var connectionStatus = false;
$(document).on('pagebeforeshow', '#index', function () {
setInterval(function () {
connectionStatus = navigator.onLine ? 'online' : 'offline';
}, 100);
$(document).on('click', '#check-connection', function () {
alert(connectionStatus);
});
});
【讨论】: