使用Phonegap 7.0.1打开Goog​​le地图

时间:2017-10-18 11:47:05

标签: google-maps cordova href phonegap

使用之前的Phonegap版本,我曾经在应用中打开谷歌地图,只需打开一个href网址,就像这样https://www.google.com/maps/dir/?api=1&origin=43.9815648,7.5328161&destination=41.802425,12.6021389

但是我注意到,使用Phonegap 7时,当我点击href元素时,没有任何反应。为什么呢?

如何修复此问题并使用给定行程打开Goog​​le地图?

3 个答案:

答案 0 :(得分:1)

出于安全原因,您无法将Cordova / PhoneGap视图重定向到其他地方托管的页面(而不是手机上),因此您有两种选择:

  1. 使用适用于Google地图的Cordova / PhoneGap插件,例如: https://www.npmjs.com/package/cordova-plugin-googlemaps

  2. 使用Cordova / PhoneGap应用内浏览器插件启动您的地图 在应用内的全屏浏览器窗口中: https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-inappbrowser/

  3. 选项#1将是首选选项。

答案 1 :(得分:1)

如果您要启动Google地图应用(而不是在应用中嵌入Google地图,例如cordova-plugin-googlemaps),则可以使用phonegap-launch-navigator插件。

答案 2 :(得分:1)

您可以加载的页面,可以加载的脚本等现在由CSP(内容安全策略)控制,而不仅仅是config.xml中的旧WhiteList机制。因此,如果您想访问网页,则必须设置Content Security Policy appropriately。要使用谷歌地图,您至少需要将google.com添加到默认的src,gstatic.com到数据。这些可能还不够,如果您不是他们可能唯一的选择是查看开发者控制台中的错误,请参阅here如何在Android上获取Chrome开发者控制台,以及here在iOS上看到它。我总是发现CSP设置恰到好处需要一堆试验和错误。

<meta http-equiv="Content-Security-Policy" content="default-src 'self' google.com data: gap: https://ssl.gstatic.com; style-src 'self' 'unsafe-inline' google.com; media-src *">

也就是说,您可能不希望Google地图控制您的应用程序(或者您可能会这样做?)因此建议使用In App Browser插件的其他建议。它只添加一个plugin并使用一些javascript打开窗口:

cordova.InAppBrowser.open('https://www.google.com/maps/dir/?api=1&origin=43.9815648,7.5328161&destination=41.802425,12.6021389', '_blank', 'location=yes');