错误:手机中的白名单拒绝

我是移动开发新手。 我正在使用Phonegap / Cordova创build一个跨平台的应用程序。 我的代码在Android上运行良好,但是当我将它移植到iPhone时,它显示错误:

[143:2003] ERROR whitelist rejection: url="abc" 

现在我能克服这个问题吗?

注意 :此答案仅适用于PhoneGap版本1.x及以下。 从版本2.x开始,白名单configuration通过cordova.xml完成。

您必须将允许的URL添加到PhoneGap.plist(或Cordova.plist)ExternalHosts数组中。

例如,如果要允许访问此URL http://www.myhost.com/path/file ,请将www.myhost.com作为新条目添加到ExternalHostsarrays。

如果您想要允许访问Google的所有子域上的内容(例如maps.google.commails.google.com ),则可以将*.google.com作为新条目添加到ExternalHosts数组中。

不过,我不确定为什么你会在链接中得到“abc”。 你有什么“abc”作为链接? 它是URI片段吗?

在PhoneGap 3.0中,您需要在Project文件夹中编辑config.xml(注意:不是www / config.xml)

 <access origin="*" /> 

在PhoneGap 3.0中,您需要编辑www/config.xml ,并添加/编辑<access>标签。 例如,如果您想要允许所有内容,请将标签更改为:

 <access origin="*" /> 

您可以在Cordova.plist文件中添加以下代码:

 <key>ExternalHosts</key> <array> <string>*.facebook.com</string> </array> 

*.facebook.com作为域名,您可以使用两个不同的子域。

您必须进入域名白名单,才能访问外部域名,例如http://google.com

在iOS(Cordova> 3.0.0)中,可以在AppName/config.xml中find白名单规则,并使用<access origin="..." />

您也可以使用通配符来声明域。 例如,要允许访问Google的所有子域名和TLD(.com,.net等),请使用*.google.*

参考: 域白名单指南

即使我得到了同样的问题…我固定在下面的方式..在cordova.plist – > ExternalHosts数组菜单下,添加一个项目为*或 。 所以它允许所有的外部链接…如果你不得不一一提及它作为.facebook。 ,*。google。*等

这是因为phonegap不会采取外部URL。对于低于2.x phonegap老版本,我们需要像这样在cordova.plist设置url。

例如: *.google.co.in (你可以把你的url放在* OpenAllWhitelistURLsInWebView之后)和OpenAllWhitelistURLsInWebView —到— YES