Android - Phonegap - 出现网络错误

3

我的环境:
Eclipse SDK 4.2.1
Cordova 2.2.0 (Phonegap)
目标平台:Android 4.0.3 (API Level 15)

我已经在许多论坛(包括这个)中尝试搜索,但似乎找不到解决这个问题的方法。

首先,assets/www目录中页面之间的链接可以正常工作。 但是,在其中一个页面上,我有:

<a href="http://www.google.com">Google</a>

我也尝试过将rel="external"作为的属性,但结果仍然相同。

根据指示,我已将google.com添加到Android白名单中:

<access origin="http://google.com" subdomains="true" />

将内容添加到res/xml/config.xml文件中。

点击上面的链接后的结果是:

应用程序错误
发生网络错误。(http://www.google.com/)

应用程序崩溃。

我在AVD Manager(模拟器)和运行Android 4.0.3的HTC One X设备上都得到了这个结果。这两个设备都可以连接到互联网。

欢迎提出任何建议。


我似乎无法重现这个错误。 - Simon MacDonald
2个回答

0
D/Cordova ( 560): onPageFinished(file:///android_asset/www/index.html) D/chromium( 560): 未知的Chromium错误:-400 D/DroidGap( 560): onMessage(onPageStarted,http://www.google.com/) D/Cordova ( 560): CordovaWebViewClient.onReceivedError: 错误代码=-1 描述=发生了网络错误。URL=http://www.google.com/ D/DroidGap( 560): onMessage(onReceivedError,{"errorCode":-1,"url":"http://www .google.com/","description":"发生了网络错误。"}) 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"/>

0
你需要一个固定的白名单吗?
我通常使用以下内容:
<access origin="*" />

问题可能是Google正在转发到另一个端口(https/443),因此子域名规范将无法帮助解决问题。
或者您可以尝试不指定协议:
<access origin="google.com" subdomains="true" />

或者尝试使用通配符如此描述

<access origin="*google.com*" />

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接