繁体   English   中英

为什么我使用cordova-plugin-googlemaps得到了空白地图

[英]Why have I got a blank map using cordova-plugin-googlemaps

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

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

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

ps:对不起我的英语

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

解决许多常见的白名单问题

替代方法是此快速修复程序-但知道此快速修复程序消除了所有white-list需求。 这会创建一个安全问题 ,您可能不希望通过。

快速修复将此添加到PHONEGAP BUILDconfig.xml
<preference name="phonegap-version" value="3.7.0" />

长答案是这样的:

Cordova / Phonegap的开发人员的最新失误中您可以找到:

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

对于#6和#7

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

幸运的是,我们所有人Holly Schinsky都写了一篇不错的博客文章来解释这一切:

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

对于#10

这种相对*新*的要求意味着–要访问任何网站或Web资源,您必须使用白名单和白名单插件。 如果您使用的是cordova-android@4.0.0或更高版本,则此要求生效。 包括cli-5.1.1和cli-5.2.0。 但是,如果您的版本低于4.0.0(例如3.5.0或3.7.0),那么您将不必添加白名单要求。

需要明确的是,“白名单”已经存在了一段时间,但是插件和要求是非常新的。 如您所料,添加“白名单”后,事实上的开放式访问功能已被弃用。 或者说另一种方式,事实上的开放式访问功能已被计划并计划取消。 此更改标志着取消了开放式访问功能的一步。

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

最后,雷蒙德·卡姆登(Raymond Camden)在他的博客中指出, 从科尔多瓦5开始,政策发生巨大变化

相关链接

Phonegap Build论坛: 在PGB上升级到cli-5.1.1的注意事项 ,现在需要白名单

尽管这是一个古老的问题,但是仍然有人可以从该页面访问。 我更新了这个答案。

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

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

“ 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隐藏了地图。

因为地图插件会在浏览器视图下显示本机Google Maps View。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM