Ошибка: отклонение белого списка в Phonegap
Я новичок в мобильной разработке. Я использую Phonegap/Cordova для создания кросс-платформенного приложения. Мой код хорошо работает на Android, но когда я переношу его на iPhone, он показывает ошибку:
[143:2003] ERROR whitelist rejection: url="abc"
Теперь я могу решить эту проблему?
Ответы
Ответ 1
Примечание. Этот ответ применим только для PhoneGap версии 1.x и ниже. Начиная с версии 2.x, конфигурация белого списка выполняется с помощью cordova.xml
.
Вы должны добавить разрешенные URL-адреса в массив ExternalHosts PhoneGap.plist(или Cordova.plist).
Например, если вы хотите разрешить доступ к этому URL-адресу http://www.myhost.com/path/file
, добавьте www.myhost.com
в качестве новой записи в массив ExternalHosts
.
Если вы хотите разрешить доступ к контенту во всех субдоменах Google (например, maps.google.com
, mails.google.com
), вы можете добавить *.google.com
в качестве новой записи в массив ExternalHosts
.
Я не уверен, почему вы получаете ссылку "abc" в ссылке. У вас есть "abc" как ссылка на что-нибудь? Это фрагмент URI?
Ответ 2
В PhoneGap 3.0 вам нужно отредактировать файл config.xml в папке Project (обратите внимание: не www/config.xml)
<access origin="*" />
Ответ 3
В PhoneGap 3.0 вам нужно отредактировать www/config.xml
и добавить/редактировать теги <access>
. Например, если вы хотите разрешить все, измените тег на:
<access origin="*" />
Ответ 4
Вы можете добавить этот следующий код в файл Cordova.plist:
<key>ExternalHosts</key>
<array>
<string>*.facebook.com</string>
</array>
С *.facebook.com
в качестве имени домена вы можете использовать два разных поддомена.
Ответ 5
Вам нужно будет использовать белый список домена, чтобы вы могли получить доступ к внешним доменам, таким как http://google.com.
В iOS (Cordova > 3.0.0) правила "белого списка" находятся в AppName/config.xml
и объявлены с помощью элемента <access origin="..." />
Вы также можете использовать подстановочные знаки для объявления доменов. Например, чтобы разрешить доступ ко всем субдоменам и TLD (.com,.net и т.д.) Google, используйте *.google.*
Ссылка: Руководство по белым спискам доменов
Ответ 6
Даже у меня такая же проблема... Я исправил ее ниже. В cordova.plist → в меню массива ExternalHosts добавьте элемент как * или.. Так он позволяет все внешние ссылки.. Если вы должны упомянуть один за другим, укажите его как .facebook., *. google. * и т.д.
Ответ 7
Это связано с тем, что телефонная задержка не будет принимать внешние URL-адреса. Для более ранних версий телефона ниже 2.x
нам нужно установить url в cordova.plist
, как это.
ex: *.google.co.in
(u может поместить ваш url после *. этого) и OpenAllWhitelistURLsInWebView
--- в --- YES
.