Javascript Can';使用my phonegap jquery应用程序无法在页面加载时获取连接状态
当我的phonegap应用程序加载时,我正在尝试加载数据源。它工作得很好,除了当我没有数据连接时,我希望系统能够感觉到这一点,然后给出一个很好的消息,比如,“对不起,你没有数据连接。”。页面加载完毕后,我可以单击一个按钮并运行一个函数,告诉我连接状态。然而,当页面加载时,它不会自动运行这段代码,我也不知道为什么。在iOS或Android上测试时,我也遇到了同样的问题。我只剥离了最基本的部分,希望有人不会发现问题Javascript Can';使用my phonegap jquery应用程序无法在页面加载时获取连接状态,javascript,jquery,cordova,jquery-mobile,Javascript,Jquery,Cordova,Jquery Mobile,当我的phonegap应用程序加载时,我正在尝试加载数据源。它工作得很好,除了当我没有数据连接时,我希望系统能够感觉到这一点,然后给出一个很好的消息,比如,“对不起,你没有数据连接。”。页面加载完毕后,我可以单击一个按钮并运行一个函数,告诉我连接状态。然而,当页面加载时,它不会自动运行这段代码,我也不知道为什么。在iOS或Android上测试时,我也遇到了同样的问题。我只剥离了最基本的部分,希望有人不会发现问题 <html> <head> <link rel
<html>
<head>
<link rel="stylesheet" type="text/css" href="css/main.css" />
<script type="text/javascript" charset="utf-8" src="js/jquery-1.7.min.js"></script>
<script type="text/javascript" charset="utf-8" src="js/main.js"></script>
<script src="js/jquery.jsonp-2.1.4.min.js"></script>
<script>
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]);
if(states[networkState] == 'No network connection') { show_no_connection(); }
}
$(document).ready(function(){
checkConnection();
});
function show_no_connection() {
$('#status').html('You Have No Data Connection!');
}
</script>
</head>
<body>
<div id="status">SO FAR, YOU HAVE A CONNECTION.</div>
<a href='javascript:void(0);' onclick='checkConnection();'>Check your connection</a><br/><br/>
<script type="text/javascript" src="cordova-2.2.0.js"></script>
<script type="text/javascript" src="js/index.js"></script>
<script type="text/javascript">
app.initialize();
</script>
</body>
函数checkConnection(){
var networkState=navigator.network.connection.type;
变量状态={};
状态[Connection.UNKNOWN]=“未知连接”;
状态[Connection.ETHERNET]=“以太网连接”;
状态[Connection.WIFI]=“WIFI连接”;
状态[Connection.CELL_2G]=“CELL 2G Connection”;
状态[Connection.CELL_3G]=“CELL 3G Connection”;
状态[Connection.CELL_4G]=“CELL 4G Connection”;
状态[Connection.NONE]=“无网络连接”;
警报('连接类型:'+状态[网络状态]);
如果(states[networkState]=='No networkconnection'){show_No_connection();}
}
$(文档).ready(函数(){
检查连接();
});
函数show_no_connection(){
$(“#status').html('您没有数据连接!');
}
到目前为止,你有联系。
app.initialize();
Classic
jQuery
语法$(文档).ready(函数(){
不应与
一起使用,它将无法正常工作,更不用说它不能用于初始化
代码。有关此主题的更多信息可在此中找到
这应该用来解决这个问题:
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]);
if(states[networkState] == 'No network connection') { show_no_connection();
}
function show_no_connection() {
$('#status').html('You Have No Data Connection!');
}
代码需要等待Phonegap
框架初始化,操作如下:
document.addEventListener("deviceready", onDeviceReady, false);