私はモバイル開発が初めてです。 Phonegap/Cordovaを使用して、クロスプラットフォームアプリを作成しています。私のコードはAndroidでうまく動作しますが、iPhoneに移植するとエラーが表示されます:
[143:2003] ERROR whitelist rejection: url="abc"
この問題を克服できますか?
注意:この回答は、PhoneGapバージョン1.x以下にのみ適用されます。バージョン2.x以降、ホワイトリストの設定は
cordova.xml
。
許可されたURLをPhoneGap.plist(またはCordova.plist)のExternalHosts配列に追加する必要があります。
たとえば、このURLへのアクセスを許可する場合はhttp://www.myhost.com/path/file
、 それから加えて www.myhost.com
ExternalHosts
配列への新しいエントリとして。
Googleのすべてのサブドメインのコンテンツへのアクセスを許可する場合(例:maps.google.com
、mails.google.com
)、 あなたは付け加えられます *.google.com
ExternalHosts
配列への新しいエントリとして。
ただし、リンクに「abc」が表示される理由はわかりません。何かへのリンクとして「abc」はありますか? URIフラグメントですか?
PhoneGap 3.0では、プロジェクトフォルダーの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
ドメイン名として、2つの異なるサブドメインを使用できます。
http://google.com などの外部ドメインにアクセスできるように、ドメインホワイトリストに登録する必要があります。
IOS(Cordova> 3.0.0)では、ホワイトリストルールはAppName/config.xml
にあり、要素<access Origin="..." />
で宣言されています
ワイルドカードを使用してドメインを宣言することもできます。たとえば、GoogleのすべてのサブドメインとTLD(.com、.netなど)へのアクセスを許可するには、*.google.*
を使用します
参照: ドメインホワイトリストガイド
同じ問題が発生した場合でも、以下の方法で修正しました。cordova.plist-> ExternalHosts arrayメニューで、*または。としてアイテムを追加します。したがって、すべての外部リンクを許可します... 。facebook。、*。google。*などとして1つずつ言及する必要がある場合.
これは、phonegapが外部URLを受け取らないためです。2.x
以下のphonegapの古いバージョンでは、cordova.plist
でこのようにURLを設定する必要があります。
ex:*.google.co.in
(uは*。thisの後にURLを置くことができます)およびOpenAllWhitelistURLsInWebView
---- to ---YES
。