我正忙于学习PhoneGap并构建适用于Android的应用程序。
有了基本的my-app,设备就可以正常工作了。
现在,我正在尝试测试网络连接,但没有成功。
我安装了plugin-network-information:
$ cordova plugin add org.apache.cordova.network-information<br>
$ phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-network-information.git<br>
向config.xml添加了功能:
<feature name="NetworkStatus">
<param name="android-package" value="org.apache.cordova.networkinformation.NetworkManager" />
</feature>
一切都好。
当我做一个
$ phonegap local build android
它可以很好地构建应用程序。
当我打开构建的AndroidManifest.xml文件时,将出现以下条目:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
运行应用程序时,出现“ ReferenceError:未定义连接”
这是我的代码,我是从PhoneGap获得的:
try {
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.CELL] = 'Cell generic connection';
states[Connection.NONE] = 'No network connection';
alert('Connection type: ' + states[networkState]);
} catch (e) {
alert(e);
}
有谁遇到过同样的问题,希望有解决的办法?
最佳答案
尝试添加超时功能以延迟navigator.connection.type
调用。我遇到过同样的问题。这就是我解决的方法:
首先执行:
var networkState = navigator.connection.type;
然后设置超时并再次运行
navigator.connection.type
:setTimeout(function(){
networkState = navigator.connection.type; // have to do this second time to pick up the refreshed value
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.CELL] = 'Cell generic connection';
states[Connection.NONE] = 'No network connection';
alert('Connection type: ' + states[networkState]);
}, 500);
我知道这很奇怪,但是这给了navigator.connection.type时间(在本示例中为500毫秒)以刷新其值。它的行为就像是一个异步调用。
您可以尝试用更大或更小的值替换500毫秒。
关于javascript - PhoneGap:ReferenceError:未定义连接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19926161/