小编Rus*_*sty的帖子

Phonegap Build:为API v3将Google Map域列入白名单

我在使用两个真正的Android手机上正确显示地图时遇到了一些问题 - 一个运行2.2.2,另一个运行4.2.2.后者在地图方面总是给我一些悲伤.我把它放在另一个线程中,因为我已经部分解决了它.

注意:我正在使用Phonegap Build with 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" />
Run Code Online (Sandbox Code Playgroud)

虽然这对于Android 2.2.2非常有效,但我会在4.2.2上遇到以下问题:

  • 地图底部缺少最后一排瓷砖(如果我使用HTTPS作为谷歌地图src)
  • 标记根本不会显示

通过将所有内容列入白名单,所有这些问题都消失了.但是我不想将所有内容列入白名单,所以如果我在这里遗漏了什么,有谁知道吗?

任何帮助非常感谢.

编辑:据我所知,使用*.googleapis.com我还会包含类似的其余白名单域.但是我在搜索中已经注意到几次iOS要求明确列出域名.虽然目前这可能不适用,但我确实打算在iOS上使用这个应用程序,所以我把它留在了(除非有人可以告诉我它完全没用而且不需要;-).

////////更新1 ////////

通过Chrome开发人员工具上的网络选项卡,我提取了谷歌地图访问的所有网址.通过明确地说明它们中的每一个,一切正常如下:

    <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"/>
Run Code Online (Sandbox Code Playgroud)

这些可能会有所变化,所以如果我可以在每个域前面使用通配符*这将是好的,但这不起作用.我尝试了以下两种方法但没有成功:

    <access origin="*.googleapis.com" subdomains="true"/>
    <access origin="*.gstatic.com" subdomains="true"/>
    <access origin="*.googleusercontent.com" …
Run Code Online (Sandbox Code Playgroud)

android whitelist google-maps-api-3 cordova

11
推荐指数
1
解决办法
7222
查看次数

标签 统计

android ×1

cordova ×1

google-maps-api-3 ×1

whitelist ×1