我是移动开发的新手。我正在使用Phonegap / Cordova创建一个跨平台的应用程序。我的代码在Android上运行良好,但当我将其移植到iPhone时,它显示错误:
[143:2003] ERROR whitelist rejection: url="abc"
现在我能解决这个问题吗?
答案 0 :(得分:55)
注意:此答案仅适用于PhoneGap 1.x及更低版本。从版本2.x开始,白名单配置通过
cordova.xml
完成。
您必须将允许的URL添加到PhoneGap.plist(或Cordova.plist)的ExternalHosts数组中。
例如,如果您想允许访问此网址http://www.myhost.com/path/file
,请将www.myhost.com
添加为ExternalHosts
数组的新条目。
如果您想允许访问Google所有子域的内容(例如maps.google.com
,mails.google.com
),您可以将*.google.com
添加为ExternalHosts
的新条目阵列。
我不知道为什么你会在链接中获得“abc”。你有“abc”作为任何东西的链接吗?它是URI片段吗?
答案 1 :(得分:32)
在PhoneGap 3.0中,您需要编辑Project文件夹中的config.xml(注意:不是www / config.xml)
<access origin="*" />
答案 2 :(得分:18)
在PhoneGap 3.0中,您需要修改www/config.xml
,并添加/修改<access>
标记。例如,如果要允许所有内容,请将标记更改为:
<access origin="*" />
答案 3 :(得分:8)
您可以在Cordova.plist文件中添加以下代码:
<key>ExternalHosts</key>
<array>
<string>*.facebook.com</string>
</array>
以*.facebook.com
作为域名,您可以使用两个不同的子域。
答案 4 :(得分:3)
您必须拥有域名白名单,以便访问http://google.com等外部域名。
在iOS(Cordova&gt; 3.0.0)中,白名单规则位于AppName/config.xml
中,并使用元素<access origin="..." />
声明
您还可以使用通配符来声明域。例如,要允许访问Google的所有子域和顶级域名(.com,.net等),请使用*.google.*
答案 5 :(得分:1)
即使我遇到了同样的问题......我通过以下方式修复它...在cordova.plist - &gt;在ExternalHosts数组菜单下,将项目添加为*或。。所以它允许所有外部链接......如果你不得不一个一个地提到它是 .facebook。,*。google。* etc。
答案 6 :(得分:0)
这是因为phonegap不会使用外部网址。对于2.x
以下版本的旧版本,我们需要在cordova.plist
中设置网址。
例如:*.google.co.in
(你可以把你的网址放在*。这之后)和OpenAllWhitelistURLsInWebView
---到--- YES
。