我的环境:
Eclipse SDK 4.2.1
Cordova 2.2.0(Phonegap)
目标平台:Android 4.0.3(API级别15)
我试过搜索很多论坛(包括这个论坛),似乎找不到解决这个问题的方法。
首先, assets/www
目录中页面之间的链接可以正常工作。但是,在其中一个页面上,我有:
<a href="http://www.google.com">Google</a>
我也试过rel="external"
作为属性,但结果是一样的。
我已根据指示在Android白名单中指定google.com添加:
<access origin="http://google.com" subdomains="true" />
到res / xml / config.xml文件。
点击上述链接的结果是:
应用程序错误
发生网络错误。 (http://www.google.com/)
并且应用程序崩溃。
我在API Level 15的AVD Manager(仿真器)集和功能设备(Android 4.0.3的HTC One X)上得到了结果。否则两者都可以上网。
任何建议都将不胜感激。
答案 0 :(得分:0)
D / Cordova(560): onPageFinished(file:///android_asset/www/index.html)D / chromium( 560):未知的铬误差:-400 D / DroidGap(560): onMessage(onPageStarted,http://www.google.com/)D / Cordova(560): CordovaWebViewClient.onReceivedError:错误代码= -1 Descripti on = A. 发生网络错误。网址= http://www.google.com/ D / DroidGap(560): 的onMessage(onReceivedError,{&#34;的errorCode&#34;:-1&#34; URL&#34;:&#34; HTTP:// WWW .google.com /&#34;,&#34;说明&#34;:&#34;发生网络错误。&#34;})D / DroidGap( 560):onMessage(onPageStarted,http://www.google.com/)D / Cordova( 560):onPageFinished(http://www.google.com/)D / DroidGap(560): onMessage(onNativeReady,null)D / DroidGap(560): onMessage(onPageFinished,http://www.google.com/)D / SoftKeyboardDetect( 560):忽略此事件D / Cordova(560): onPageFinished(http://www.google.com/)D / DroidGap(560): onMessage(onNativeReady,null)D / DroidGap(560): 的onMessage(onPageFinished,HTTP://www.google.com/)
我唯一一次看到-400错误就是上网时间 许可证丢失:
<uses-permission android:name="android.permission.INTERNET"/>
答案 1 :(得分:0)
您需要固定的白名单吗?
我通常会很好:
<access origin="*" />
问题可能是Google转发到另一个端口(https / 443),因此子域规范无济于事。
或者您可以在不指定协议的情况下尝试:
<access origin="google.com" subdomains="true" />
或尝试使用通配符as described here:
<access origin="*google.com*" />