【问题标题】:Why have I got a blank map using cordova-plugin-googlemaps为什么我使用 cordova-plugin-googlemaps 得到一张空白地图
【发布时间】:2016-01-22 00:42:30
【问题描述】:

我正在使用cordova 框架和jquery mobile 开发一个混合应用程序。我使用 cordova-plugin-googlemaps 而不是 google maps javascript api v3 来提高我的应用程序的性能。当我在 android 设备上运行我的应用程序时,它会显示一张空白地图。我使用本教程 [Tutorial for Windows to add cordova-plugin-googlemaps][1]

[1]: https://github.com/mapsplugin/cordova-plugin-googlemaps/wiki/Tutorial-for-Windows 添加cordova插件和这个[空白地图][2]

[2]: https://github.com/mapsplugin/cordova-plugin-googlemaps/wiki/TroubleShooting:-Blank-Map 来解决我的问题,但我还没有解决。请帮帮我!

p.s.: 对不起我的英语

【问题讨论】:

    标签: android cordova google-maps


    【解决方案1】:

    虽然这是一个老问题,但有些人仍然从这个页面访问。 我更新了这个答案。

    JesseMonroy650 的回答具有误导性。因为最初的提问者描述“他/她使用cordova-plugin-googlemaps而不是google maps javascript api v3”

    cordova-plugin-googlemaps是2015年“Google Maps SDK for Android”和“Google Maps SDK for iOS”的封装插件。

    “cordova-plugin-googlemaps”提供了这些原生 SDK 的原始 JavaScript API。 但在后面,插件操作的是原生 API,而那些原生 API 根本不遵循 white-list 规则,因为它不是 JavaScript。


    很多人问我“为什么我得到空白地图?”

    有两个原因:

    1)如果您的意思是“空白地图”是“灰色地图”,那么这是您的 API 密钥身份验证问题。 大多数人都是这种情况。

    https://github.com/mapsplugin/cordova-plugin-googlemaps-doc/blob/master/troubleshootings/graymap/README.md

    2) 如果你的意思是“白色地图”(你根本看不到地图),可能你用 background-color 或其他 DOM 隐藏了地图。

    因为地图插件在浏览器视图下显示原生谷歌地图视图。

    3) 即使你不能解决你的问题,也请在https://github.com/mapsplugin/cordova-plugin-googlemaps/issues问我

    【讨论】:

      【解决方案2】:

      当您访问不在网页上的任何资源或资产时,您需要使用whitelist

      许多常见的白名单问题的修复

      替代方法是这个快速修复——但要知道这个快速修复消除了对white-list 的所有需求。这会创建一个您可能不想绕过的security issue

      快速修复将此添加到您的config.xml,以便仅限PHONEGAP BUILD
      <preference name="phonegap-version" value="3.7.0" />

      长答案是这样的:

      来自Top Mistakes by Developers new to Cordova/Phonegap,您已点击:

      • #6 没有为你的编译器设置“phonegap 版本”
      • #7 没有为你的插件设置“版本”
      • #10 不在 config.xml 中添加新的“白名单”和“白名单插件”参数。

      #6 & #7

      使用 CLI 版本,如果您没有为您的平台或“Phonegap Build”分配版本,如果您没有在 config.xml 中设置 phonegap-version,您将获得最新版本。如果幸运的话,您的程序会按预期运行。如果你不走运,你会得到一系列级联错误。

      幸运的是,Holly Schinsky 写了一篇很好的博文来解释这一切:

      Cordova/PhoneGap 版本混乱
      http://devgirl.org/2014/11/07/cordovaphonegap-version-confusion/

      #10

      这个相对 * 新 * 要求意味着——要访问网络上的任何网站或资源,您必须使用白名单和白名单插件。如果您使用的是 cordova-android@4.0.0 或更高版本,此要求将生效;包括 cli-5.1.1 和 cli-5.2.0。但是,如果您的版本在 4.0.0 之前,比如 3.5.0 或 3.7.0,那么您将不必添加白名单要求。 p>

      需要明确的是,“白名单”已经存在了一段时间,但插件和要求是非常新的。如您所料,当添加“白名单”时,事实上的开放访问功能已被弃用。或者换一种说法,事实上的开放访问功能是计划和计划取消的。这一变化标志着在移除开放获取功能方面迈出了一步。

      此外,内容安全政策 (CSP) 吸引了众多开发人员 - 因为它的宣传太差了。 根据您的使用情况和您使用的Phonegap 版本,CSP 需要进入您使用的每一个HTML 页面,就像您必须等待'deviceready' 一样。但是,在某些情况下根本不需要它。文档让某些人感到困惑,请仔细阅读。 该文档隐藏在许多最新文档页面的底部。

      最后,Raymond Camden 在他的博客中指出了LARGE change in policy starting with Cordova 5

      相关链接

      Phonegap 构建论坛:Notes for upgrading to cli-5.1.1 on PGB,现在需要白名单

      【讨论】:

      • 我安装了最新版本的 cordova 和 googlemaps 插件。我插入元标记 "ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">" 到 .html 文件中,但问题仍然存在。我看到了空白地图。
      • 好的。我要让你看看我为white-list 写的RAW NOTES。我正在写一篇博客文章,但这需要几天时间。我会推荐 DANGEROUS 设置。 github.com/jessemonroy650/top-phonegap-mistakes/blob/master/…
      猜你喜欢
      • 2017-02-02
      • 1970-01-01
      • 1970-01-01
      • 2016-03-03
      • 1970-01-01
      • 2015-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多