2013-10-15 14 views
11

2つの実際のAndroid搭載端末(マップされている地図が正しくマップされるようになりました。後者は、地図に関してはいつも悲しみを与えてくれました。私はこれを部分的に解決したので別のスレッドhereに入れました。Phonegapビルド:API v3用のGoogleマップドメインをホワイトリストに登録

注:Phonegap BuildをDreamweaver CS6で使用しています。マニフェストXMLファイルを持たないconfig.xmlだけです。

4.2.2で地図が正しく機能するためには、すべてのドメインをホワイトリストに登録する必要があるという点で別の問題があります。理由はわかりません。 は当初、私は私のconfig.xmlにこれを持っていた:

<access origin="*.googleapis.com" /> 
<access origin="*.gstatic.com" /> 
<access origin="*.google.com" /> 
<access origin="maps.googleapis.com" /> 
<access origin="maps.gstatic.com" /> 
<access origin="mt0.googleapis.com" /> 
<access origin="mt1.googleapis.com" /> 
<access origin="csi.gstatic.com" /> 

これは、Android 2.2.2のために完全に働いている間、私は次の問題4.2.2になるだろう:最後に行方不明マップの

  • ボトムタイルの行(私はGoogleマップのSRCのためにHTTPSを使用する場合)
  • マーカーは、これらの問題のすべてが消え、ちょうどすべてをホワイトリストに登録することにより、すべての

で表示されませんでした。しかし、私はすべてをホワイトリストに載せたくないので、誰かがここで何かを逃しているかどうか知っていますか?

ご迷惑をおかけして申し訳ございません。

編集:* .googleapis.comを使用することで、同様の残りのホワイトリストドメインも網羅されます。しかし、iOSがドメインを明示的にリストする必要があるということは、私の検索で何度か気づいています。これは現時点では当てはまらないかもしれませんが、私はこのアプリケーションをiOS上で使用するつもりだから(誰かが私に完全に役に立たず、必要でないと言うことができない限り)それを残しました。

////////のUPDATE 1 ////////

Chromeデベロッパーツールでネットワークタブから注いだ後、私はGoogleマップによってアクセスされるすべてのURLを抽出。

<access origin="https://mts.googleapis.com" subdomains="true"/> 
    <access origin="https://mts0.googleapis.com" subdomains="true"/> 
    <access origin="https://mts1.googleapis.com" subdomains="true"/> 
    <access origin="https://maps.googleapis.com" subdomains="true"/> 
    <access origin="https://fonts.googleapis.com" subdomains="true"/> 
    <access origin="https://maps.gstatic.com" subdomains="true"/> 
    <access origin="https://csi.gstatic.com" subdomains="true"/> 
    <access origin="https://themes.googleusercontent.com" subdomains="true"/> 

これらはおそらく私がちょうどドメインのそれぞれの前にワイルドカード*を使用することができれば、それは良いでしょうので、変更される場合がありますが、これはない:明示的に一人一人を示すことによって、すべてがOKそうのように動作しますうまくいかない。私はなし成功と、次の両方を試してみました:

<access origin="*.googleapis.com" subdomains="true"/> 
    <access origin="*.gstatic.com" subdomains="true"/> 
    <access origin="*.googleusercontent.com" subdomains="true"/> 


    <access origin="https://*.googleapis.com" subdomains="true"/> 
    <access origin="https://*.gstatic.com" subdomains="true"/> 
    <access origin="https://*.googleusercontent.com" subdomains="true"/> 

誰もが、私はこれらのケースでは、ワイルドカードを使用することができません理由を任意のアイデアがありますか? 乾杯。私は答えを見つけた多くの実験の後

////////

//////// UPDATE 2/ANSWER。サブドメインを許可する場合は特にconfig.xmlのタグを書く方法が非常に限定されているように見えます。サブドメインを指定するとワイルドカードでは動作しないので、2つのタグブロックが必要です。

<access origin="*.google.com" /> 
    <access origin="*.googleapis.com" /> 
    <access origin="*.gstatic.com" /> 
    <access origin="*.googleusercontent.com" /> 
    <access origin="google.com" subdomains="true"/> 
    <access origin="googleapis.com" subdomains="true"/> 
    <access origin="gstatic.com" subdomains="true"/> 
    <access origin="googleusercontent.com" subdomains="true"/> 

をうまくいけば、これは誰かに使用されるであろう:私は最終的に、両方のデバイスが正しく機能し、以下のものを使用して、HTTPSを使用しています。私はまだAndroidの古いバージョンでうまくいった理由を理解できません。もしそうなら、誰かが私を啓発するのを助けるかもしれない?

答えて

1

ホワイトリストドメインの構文は、PhoneGapのバージョンによって変更されています。バージョン3.1以上の場合は、構文についてはこのドキュメントを参照してください:http://docs.phonegap.com/en/3.1.0/guide_appdev_whitelist_index.md.html。あなたのワイルドカードがあなたのために働いていない理由が考えられます。

私は、次を使用していますし、私のPhoneGapアプリケーションで私のGoogleマップを表示するように動作します:

<access origin="*://*.googleapis.com/*" subdomains="true" /> 
<access origin="*://*.gstatic.com/*" subdomains="true" /> 
<access origin="*://*.google.com/*" subdomains="true" /> 
<access origin="*://*.googleusercontent.com/*" subdomains="true" /> 
関連する問題