我今天升级到最新的Cordova - 5.4.1。 iOS上的应用程序保持正常工作,但不适用于Android。所有请求都返回404错误,所以我深入研究了这个主题,发现我需要" cordova-plugin-whitelist"。我安装了它并添加了
<meta http-equiv="Content-Security-Policy" content="default-src * 'unsafe-inline' 'unsafe-eval'">
到index.html的标题以及<access origin="*" /><allow-navigation href="*"/>
到config.xml
现在每个对外部世界的请求都在返回&#34; net :: ERR_NAME_NOT_RESOLVED&#34;
在AndroidManifest.xml中我有这两行,所以我猜它不是互联网访问的问题。
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
我经历了很多关于与cordova-plugin-whitelist相关的SO的问题,但似乎没有任何工作
我的config.xml ```
<?xml version='1.0' encoding='utf-8'?>
<widget id="app" version="1.1.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<name>app</name>
<description>
A sample Apache Cordova application that responds to the deviceready event.
</description>
<author email="dev@cordova.apache.org" href="http://cordova.io">
Apache Cordova Team
</author>
<content src="index.html" />
<allow-navigation href="*" />
<platform name="ios">...splash screens and icons</platform>
<platform name="android">...splash screens and icons</platform>
<icon src="resources/android/icon/drawable-xhdpi-icon.png" />
<preference name="SplashScreen" value="screen" />
<preference name="SplashScreenDelay" value="3000" />
<preference name="Orientation" value="default" />
<feature name="phonegap-parse-plugin">
<param name="id" value="org.apache.cordova.core.parseplugin" />
<param name="url" value="https://github.com/fastrde/phonegap-parse-plugin" />
</feature>
<feature name="Insomnia (prevent screen sleep)">
<param name="id" value="nl.x-services.plugins.insomnia" />
<param name="url" value="https://github.com/EddyVerbruggen/Insomnia-PhoneGap-Plugin.git" />
</feature>
<feature name="Toast">
<param name="id" value="cordova-plugin-x-toast" />
<param name="url" value="https://github.com/EddyVerbruggen/Toast-PhoneGap-Plugin.git" />
</feature>
<feature name="Cordova SMS Plugin">
<param name="id" value="com.cordova.plugins.sms" />
<param name="url" value="https://github.com/cordova-sms/cordova-sms-plugin.git" />
</feature>
<feature name="OpenTokCordovaPlugin">
<param name="id" value="com.tokbox.cordova.opentok" />
<param name="url" value="https://github.com/doxyme/cordova-plugin-opentok" />
</feature>
</widget>
```
答案 0 :(得分:18)
我不知道问题是什么,但重启设备解决了它。没有任何与该应用相关的信息,只是手机连接到互联网时遇到了困难,即使它连接到Wi-Fi并且信号强度似乎最大化。
答案 1 :(得分:3)
在你的应用'config.xml'中,只放置:
<allow-navigation href="*" />
并删除您添加到index.html标头中的内容。 然后,如果它仍然不起作用,则意味着您的问题与白名单插件无关。
我在不同的Android项目中使用过这个插件,并且从来没有做过更多的事情来允许我的应用与后端进行通信。
希望有所帮助!
答案 2 :(得分:1)
我们遇到了类似的问题,我们收到了#34;无法加载资源net :: ERR_NAME_NOT_RESOLVED&#34;在使用Cordova 6.4.0和版本25(7.1.1)android SDK的HAXM中运行的android模拟器的两个不同系统上出错。只需删除并添加whilelist插件即可解决我们的问题,无需更改任何配置文件。
答案 3 :(得分:0)
我遇到了同样的问题,似乎没有解决任何问题......我发现在我的情况下,闪屏图像尺寸太大(大约3.2MB)......我用this website来压缩文件,然后工作。
答案 4 :(得分:0)
重新启动Device似乎可以在本地为我解决此问题,但是这项工作总是会从支持人员那里得到。因此,我们想为解决方案提供解决方案,而不是解决方法。
白名单插件还具有Content Security Policy声明:
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">
这似乎为我解决了这个问题,但是只有时间会证明一切,因为我永远无法使这个问题按需复制。
答案 5 :(得分:0)
对我而言,上述解决方案均无效。对我有用的是直接从仓库中添加插件:
cordova plugin rm cordova-plugin-inappbrowser --force
cordova plugin add https://github.com/apache/cordova-plugin-inappbrowser.git
如果问题仍然存在,则可以继续并删除并重新添加平台:
cordova platform save
cordova platform rm <platform>
cordova platform add <platform>