Cordova navigator.connection.type 不起作用

cordova navigator.connection.type is not working

本文关键字:不起作用 type connection navigator Cordova      更新时间:2023-09-26

我正在使用cordova制作一个混合HTML5应用程序。 devicereadybackbutton 等事件都正常运行。 但是,当事件navigator.connection.type执行时,该事件无法正常工作。这是代码

<head>
   <script type="text/javascript" src="./lib/js/cordova.js"></script>
</head>
<script>
   function onLoad(){
       document.addEventListener("deviceready", onDeviceReady, false);
   }
   function onDeviceReady() {
       document.addEventListener("backbutton", onBackButton, false);
       checkConnection();
   }
   function checkConnection() {
       alert("test");  // first alert. Work
       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]);  // second alert
   }
   function onBackButton() {
       // code
   }
</script>
<body onload="onLoad()">
    <!-- code -->
</body>

我使用两个警报,第一个警报运行良好,而第二个警报不起作用。我也使用 node.js 命令提示符向我的应用程序添加了一个插件cordova plugin add-plugin-network-information。任何帮助非常感谢。

你不需要那个加载函数。它很可能过早地调用您的 checkConnection 函数。

试试这个;

document.addEventListener("deviceready", onDeviceReady, false);

function checkConnection() {
   alert("test");  // first alert. Work
   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]);  // second alert
 }

function onDeviceReady() {
  checkConnection();
}

科尔多瓦将处理onDeviceReady。