错误:手机中的白名单拒绝
我是移动开发新手。 我正在使用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
作为新条目添加到ExternalHosts
arrays。
如果您想要允许访问Google的所有子域上的内容(例如maps.google.com
, mails.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
。