Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Phonegap无互联网警报弹出问题_Javascript_Jquery_Html_Cordova - Fatal编程技术网

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
}