Javascript Phonegap无互联网警报弹出问题
我在网上搜索,当一个应用程序打开时,我会在通知连接类型时得到这个脚本Javascript Phonegap无互联网警报弹出问题,javascript,jquery,html,cordova,Javascript,Jquery,Html,Cordova,我在网上搜索,当一个应用程序打开时,我会在通知连接类型时得到这个脚本 <script type="text/javascript" src="cordova-2.5.0.js"></script> <script type="text/javascript" charset="utf-8"> // Wait for PhoneGap to load // document.addEventListener("deviceready", onDeviceRe
<script type="text/javascript" src="cordova-2.5.0.js"></script>
<script type="text/javascript" charset="utf-8">
// Wait for PhoneGap to load
//
document.addEventListener("deviceready", onDeviceReady, false);
// PhoneGap is loaded and it is now safe to make calls PhoneGap methods
//
function onDeviceReady() {
checkConnection();
}
function checkConnection() {
var networkState = navigator.network.connection.type;
var states = {};
states[Connection.UNKNOWN] = 'Unknown connection';
states[Connection.ETHERNET] = 'Ethernet connection';
states[Connection.WIFI] = 'WiFi connection';
states[Connection.CELL_2G] = 'Cell 2G connection';
states[Connection.CELL_3G] = 'Cell 3G connection';
states[Connection.CELL_4G] = 'Cell 4G connection';
states[Connection.NONE] = 'No network connection';
alert('Connection type: ' + states[networkState]);
}
</script>
请有人告诉我出路,我也有一个表格,我提交,我希望该表格也返回到同一页,如果没有互联网提交
<form id="loginform" name="loginform" method="POST" action="http://mysite/login.php">
我使用
true/false
并知道NONE
和unknown
都是未连接的指示器,而不是将状态[]
值分配给字符串:
states[Connection.UNKNOWN] = false;
states[Connection.ETHERNET] = true;
states[Connection.WIFI] = true;
states[Connection.CELL_2G] = true;
states[Connection.CELL_3G] = true;
states[Connection.CELL_4G] = true;
states[Connection.CELL] = true;
states[Connection.NONE] = false;
然后你可以做:
if (states[networkState] === false) {
//do something
}
挂接“脱机”事件,然后在事件触发时显示未连接的消息/警报可能是更好的选择。当“deviceready”事件触发时,您可以将其与显示的消息一起使用 确保您安装了
org.apache.cordova.networkinformation
插件,以使任何一个都能正常工作
当先前连接的设备丢失了一个数据时,将触发脱机事件
网络连接,使应用程序无法再访问
互联网它依赖于与连接API相同的信息,以及
当connection.type的值变为NONE时激发
参考资料:
用
'
分隔的东西不应该是字符
,而不是字符串
代码>。不应该是状态[Connection.UNKNOWN]=“UNKNOWN Connection”代码>?然后,您应该将字符串与.equals()
进行比较,而不是=
。不过,我把它与Java而不是Javascript混淆了!最好将这两种解决方案配对,因为上面的使用将捕获加载时的连接状态,而事件侦听器将捕获应用程序使用过程中断开的连接。我还没有测试“脱机”事件是否在“deviceready”之后直接触发(如果是这样的话就更好了)。您应该检查它是否正确,并相应地编写代码。在任何情况下,我都会使用“离线”事件来捕获应用程序使用过程中断开的连接。让我知道你发现了什么:)似乎从文档中你需要配对解决方案。
if (states[networkState] === false) {
//do something
}
document.addEventListener("offline", onOffline, false);
function onOffline() {
// Handle the offline event
}