web-dev-qa-db-ja.com

エラー:Phonegapのホワイトリスト拒否

私はモバイル開発が初めてです。 Phonegap/Cordovaを使用して、クロスプラットフォームアプリを作成しています。私のコードはAndroidでうまく動作しますが、iPhoneに移植するとエラーが表示されます:

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

この問題を克服できますか?

54
Neji

注意:この回答は、PhoneGapバージョン1.x以下にのみ適用されます。バージョン2.x以降、ホワイトリストの設定はcordova.xml

許可されたURLをPhoneGap.plist(またはCordova.plist)のExternalHosts配列に追加する必要があります。

たとえば、このURLへのアクセスを許可する場合はhttp://www.myhost.com/path/file、 それから加えて www.myhost.comExternalHosts配列への新しいエントリとして。

Googleのすべてのサブドメインのコンテンツへのアクセスを許可する場合(例:maps.google.commails.google.com)、 あなたは付け加えられます *.google.comExternalHosts配列への新しいエントリとして。

ただし、リンクに「abc」が表示される理由はわかりません。何かへのリンクとして「abc」はありますか? URIフラグメントですか?

55
nhahtdh

PhoneGap 3.0では、プロジェクトフォルダーのconfig.xmlを編集する必要があります(注:www/config.xmlではありません)

<access Origin="*" />
32
Ivan

PhoneGap 3.0では、www/config.xmlを編集し、<access>タグを追加/編集する必要があります。たとえば、すべてを許可する場合は、タグを次のように変更します。

<access Origin="*" />
18
shawkinaw

次のコードをCordova.plistファイルに追加できます。

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

*.facebook.comドメイン名として、2つの異なるサブドメインを使用できます。

8
Manish Agrawal

http://google.com などの外部ドメインにアクセスできるように、ドメインホワイトリストに登録する必要があります。

IOS(Cordova> 3.0.0)では、ホワイトリストルールはAppName/config.xmlにあり、要素<access Origin="..." />で宣言されています

ワイルドカードを使用してドメインを宣言することもできます。たとえば、GoogleのすべてのサブドメインとTLD(.com、.netなど)へのアクセスを許可するには、*.google.*を使用します

参照: ドメインホワイトリストガイド

3
wael

同じ問題が発生した場合でも、以下の方法で修正しました。cordova.plist-> ExternalHosts arrayメニューで、*またはとしてアイテムを追加します。したがって、すべての外部リンクを許可します... 。facebook。、*。google。*などとして1つずつ言及する必要がある場合.

1

これは、phonegapが外部URLを受け取らないためです。2.x以下のphonegapの古いバージョンでは、cordova.plistでこのようにURLを設定する必要があります。

ex:*.google.co.in(uは*。thisの後にURLを置くことができます)およびOpenAllWhitelistURLsInWebView---- to ---YES

0
DC9999