【问题标题】:Check internet connection on iOS app with Cordova Phonegap 3.3.0 not working在 Cordova Phonegap 3.3.0 不工作的情况下检查 iOS 应用程序上的互联网连接
【发布时间】:2014-01-08 01:29:47
【问题描述】:

我已尝试按照 Cordova 文档上的 this 指南进行操作,但它似乎不起作用。

这是我的代码:

我已将<plugin name="NetworkStatus" value="CDVConnection" /> 添加到config.xml

这个脚本给我的index.html:

    <script type="text/javascript">


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

        // device APIs are available
        //
        function onDeviceReady() {
            alert("1"); // runs this alert
            checkConnection();
        }

        function checkConnection() {
            var networkState = Connection.CELL;
            alert("2"); // doesn't run this

            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]);
        }

    </script>

var networkState = Connection.CELL; 似乎是导致问题的原因,因为它没有运行以下警报,我也尝试过navigator.connection.type,但发生了同样的事情。

当我在 Chrome 中运行应用程序时,控制台输出以下错误:

Uncaught ReferenceError: Connection is not defined 

有人知道如何解决这个问题吗?

干杯

【问题讨论】:

  • 您是否将Cordova.js 包含在您的index.html 文件中
  • 是的,我有&lt;script type="text/javascript" src="cordova.js"&gt;&lt;/script&gt;

标签: javascript ios cordova connection


【解决方案1】:

我终于解决了这个问题! - 从头开始​​并执行以下操作:

命令行:

sudo npm install -g cordova
cordova create hello com.example.hello HelloWorld
cd hello
cordova platform add ios
cordova platforms ls //This will list ios
cordova plugin add org.apache.cordova.network-information
cordova build

然后将我的文件(HTML、Javascript 等)拖到 platforms/ios/www/ 文件夹中。

在 xcode 中打开hello.xcodeproj

编辑 config.xml 并添加以下行:

<feature name="NetworkStatus">
    <param name="ios-package" value="CDVConnection" />
</feature>

然后在我的索引文件中我使用了 JavaScript:

    <script type="text/javascript">
        document.addEventListener("deviceready", onDeviceReady, false);
        // device APIs are available
        function onDeviceReady() {
            if(navigator.network.connection.type == Connection.NONE){
                alert("nocon");
            }else{
                alert("yescon");
            }
        }
    </script>

然后在iPhone/iPad模拟器中运行,有连接输出“yescon”,没有连接输出“nocon”!!

希望这会有所帮助!

【讨论】:

  • 一种更简单的方法,无需从头开始 - stackoverflow.com/a/19688926/126600
  • 不工作我正在使用ios7和cordova 3.3使用connection.CELL
  • 我没用过connection.CELL,我看看有没有连接。
【解决方案2】:

这对我有用:

if(navigator.network.connection.type == Connection.NONE){
//no connection
}else{
//You are connected.
}

虽然我查看了文档,但使用这些行看起来有区别:

var networkState = navigator.network.connection.type;

对于所有蜂窝数据,navigator.network.connection.type 设置为 Connection.CELL_2G

var networkState = Connection.CELL_2G;吗?

【讨论】:

  • 我已经尝试过使用 navigator.network.connection.type,我认为这已被贬值或不适用于 Cordova 文档页面底部的 iOS(适用于 3.3.0)- iOS 怪癖 iOS 无法检测蜂窝网络连接的类型。对于所有蜂窝数据,navigator.connection.type 设置为 Connection.CELL。
  • 上面写着Connection.CELL_2G,我不确定这是否重要。
  • 在重建应用程序并复制 www 文件后,它仍然无法正常工作.. 当你说你使用cordova 3.3.0 时它工作正常?
  • 我使用的是cordova 2.9。
  • hhmmm 很奇怪,我现在让它输出错误:ERROR: Plugin 'NetworkStatus' not found, or is not a CDVPlugin. Check your plugin mapping in config.xml :( 我在 config.xml 中有这一行 &lt;feature name="NetworkStatus"&gt;&lt;param name="ios-package" value="CDVConnection" /&gt;&lt;/feature&gt; ... 很困惑为什么这不起作用!Cordova文档很糟糕.. 真的需要重写
【解决方案3】:

检查您是否已将 Cordova.js 文件包含在 html 中。

<script type="text/javascript" src="cordova.js"></script>

并更改您项目的App/Supporting Files/Cordova.plist

<key>Plugins</key>
     <dict>
     <key>NetworkStatus</key>
     <string>CDVConnection</string>
</dict>

【讨论】:

  • Cordova.plist 已停产并替换为我的config.xml,上面的代码与插件代码基本相同
猜你喜欢
  • 1970-01-01
  • 2014-05-21
  • 1970-01-01
  • 2019-08-30
  • 1970-01-01
  • 1970-01-01
  • 2018-07-08
  • 2016-01-17
  • 2017-11-05
相关资源
最近更新 更多