Phonegap(在线构建)应用程序 - 没有互联网连接和网络状态

Phonegap (online build) app - no internet connection and network status

我的第一个 jquery 移动应用程序包含需要来自互联网资源的数据的元素,例如 public Google 日历和亚马逊会员小部件,但它仅在我 [=24] 中测试时有效=] 浏览器或带有 html5 应用程序测试器的 Kindle Fire 设备。 如果我使用在线 Phonegap 构建 android 发布 apk,Kindle 和其他 android 设备(如联想手机)无法在应用程序中连接互联网。我已经阅读了本期的所有主题,发现在 config.xml 中建议使用 <access origin="*" subdomains="true" /> 但它没有效果。 我还将代码片段放在应用程序中,例如:

    if (navigator.onLine) {
  $("#ifonline").append("Online");
} else {
   $("#ifonline").append("offline");

}

var isOffline = 'onLine' in navigator && !navigator.onLine;

if ( isOffline ) {
    $("#ifonline2").append("Status: offline");
}
else {
    $("#ifonline2").append("online");
}

但结果是什么都没有。我的 config.xml:

<?xml version="1.0" encoding="UTF-8" ?>
    <widget xmlns   = "http://www.w3.org/ns/widgets"
        xmlns:gap   = "http://phonegap.com/ns/1.0"
        id          = "com.myapp.myapptodo"
        versionCode = "10" 
        version     = "1.0.0" >
    <name>myapp</name>

    <description>
        myapp is very good but can't find that &@ĐäĐ wifi!
    </description>

    <author href="https://mysite" email="mymail">
        Ceatos
    </author>

    <gap:plugin name="org.apache.cordova.network-information" />

    <feature name="http://api.phonegap.com/1.0/geolocation"/>
    <feature name="http://api.phonegap.com/1.0/media"/>
    <feature name="http://api.phonegap.com/1.0/network"/>
    <feature name="http://api.phonegap.com/1.0/notification"/>
    <feature name="InAppBrowser">
    <param name="android-package" value="org.apache.cordova.InAppBrowser"/>
    </feature>

    <feature name="NetworkStatus">
    <param name="android-package" value="org.apache.cordova.networkinformation.NetworkManager" />
</feature>

    <access origin="*" subdomains="true" />

我有一个可用的 wifi 网络,并且设备已连接到它。我该怎么办?

为了检查互联网连接,我使用了这个功能:

function checkConnection(){
            var networkState = navigator.connection.type;
            if(Connection.NONE==networkState)
                return "<p>No connection</p>";
}

为了能够使用它,您必须以这种方式添加网络状态插件:

cordova plugin add cordova-plugin-network-information

您的 AndoidManifest 文件应包含以下两行:

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

添加白名单插件

<gap:plugin name="cordova-plugin-whitelist" source="npm" />

您可能需要在头部添加此元标记

<meta http-equiv="Content-Security-Policy" content="default-src *; style-src *  'unsafe-inline'; script-src *  'unsafe-inline'; media-src *">

并将这两行添加到 config.xml

<allow-navigation href="http://*/*" />
<allow-intent href="https://*/*" />