cordova - Phonegap 网络状态

标签 cordova

我正在尝试检查我的 phonegap 应用程序中的网络状态(使用 phonegap 2.2.0),但是我显示的是一条警告,提示连接类型:未定义。当我执行 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]);

}

有没有人遇到过这个问题或有任何解决办法?目前我正在使用 WiFi 连接,即使在 3G 连接上它也返回相同的结果。

最佳答案

请检查以下步骤:

  • 首先检查权限。确保你已经添加了

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    

    在你的 AndroidManifest.xml 中

  • 其次检查正确的插件配置。如果您使用旧的 Phonegap 教程(1.6 之前的版本)和新的 Phonegap/Cordova 框架,您应该将 res/xml/plugins.xml 更改为:

    <plugin name="Network Status" value="org.apache.cordova.NetworkManager"/>
    

    成为:

    <plugin name="NetworkStatus" value="org.apache.cordova.NetworkManager"/> 
    
  • 最新版本的 Phonegap/Cordoca 有一个错误:

     navigator.connection.type
    

    将其更改为:

    navigator.network.connection.type.
    

    您也可以使用旧的 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>
    

关于cordova - Phonegap 网络状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14094031/

相关文章:

angularjs - Angular ng-show ="false"不起作用

javascript - Rangeslider.js 调用 onchange() 两次

android - phonegap 云构建,使用带有不同 ios 和 android 插件的单一代码库

javascript - Epub.js - 由于 blob URI,Phonegap 无法正常工作

xcode - Cordova应用程序无法使用Xcode 7.3存档(未找到Cordova/CDVViewController.h'文件)

ios - Cordova CLI 4.0 : how to install master/nightly version of cordova-ios?

jquery - 如何检查用户是否在iPhone设置中限制了相机

java - android phonegap cordova webview 事件

api - 如何禁用phonegap自动重载(至少在开发期间)

javascript - 如何使用 onDeviceReady 设置 AngularJS 应用程序并为 Cordova 初始化函数?