Phonegap(在线构build)应用程序 – 没有互联网连接和networking状态

我的第一个jQuery的移动应用程序包含需要来自互联网来源,如公共Google日历和亚马逊附属组件小部件的数据元素,但它只适用于我的Chrome浏览器或与Kindle应用程序testing仪在Kindle Fire设备上testing。 如果我使用在线Phonegap构buildAndroid版本的apk,那么Kindle和其他类似联想手机的Android设备无法在应用中访问互联网。 我已经阅读了这个问题的所有主题,并发现它build议在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" /> 

我有一个工作的无线networking和设备连接到它。 我该怎么办?

Solutions Collecting From Web of "Phonegap(在线构build)应用程序 – 没有互联网连接和networking状态"

添加白名单插件

 <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://*/*" /> 

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

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

为了能够使用它,你必须这样添加networking状态插件:

 cordova plugin add cordova-plugin-network-information 

你的AndoidManifest文件应该包含这两行:

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