我正在尝试检查我的phonegap应用程序中的网络状态(使用phonegap 2.2.0)但是我正在显示一条警告说Conection类型:undefined.当我执行console.log时,它返回0.
我正在使用phonegap提供的代码并在onDeviceReady之后调用它.这是我使用的代码:
function checkConnection() {
var networkState = navigator.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]);
}
Run Code Online (Sandbox Code Playgroud)
有没有人遇到过这个问题,或者有任何想法如何绕过它?目前我正在使用WiFi连接,即使在3G连接上也会返回相同的连接.
请检查以下步骤:
首先检查权限.确保你已添加
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Run Code Online (Sandbox Code Playgroud)
在AndroidManifest.xml中
第二步检查正确的插件配置.如果您使用旧的Phonegap教程(Pre 1.6版本)和新的Phonegap/Cordova框架,您应该从以下位置更改res/xml/plugins.xml:
<plugin name="Network Status" value="org.apache.cordova.NetworkManager"/>
Run Code Online (Sandbox Code Playgroud)
成为:
<plugin name="NetworkStatus" value="org.apache.cordova.NetworkManager"/>
Run Code Online (Sandbox Code Playgroud)最新版本的Phonegap/Cordoca有一个错误:
navigator.connection.type
Run Code Online (Sandbox Code Playgroud)
将其更改为:
navigator.network.connection.type.
Run Code Online (Sandbox Code Playgroud)
您也可以使用旧的2.1版本或等待版本2.3
长拍,你在执行函数checkConnecting()之前使用过deviceready事件吗?
最糟糕的情况会改变您的代码,并尝试这样:
<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript" charset="utf-8" src="cordova-2.2.0.js"></script>
<script type="text/javascript" charset="utf-8">
var deviceInfo = function(){
alert(navigator.network.connection.type);
}
function init(){
document.addEventListener("deviceready", deviceInfo, true);
}
</script>
</head>
<body onload="init();">
</body>
</html>
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
5347 次 |
| 最近记录: |