2017-10-18 112 views

回答

1

您可以加载页面,脚本可以加载等,现在由CSP(内容安全策略)来控制,而不是仅仅在config.xml老白名单机制。所以,如果你想访问页面,你必须设置你的Content Security Policy appropriately。要使用Google地图,您至少需要将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 *"> 

这就是说,你可能不希望谷歌地图把你的应用程序的控制(或者也许你吗?),所以其他建议使用会建议在应用程序浏览器插件。它只是增加一个plugin并使用JavaScript来打开窗:与旧的PhoneGap工作

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

你在哪里插入你发布的第一个代码行?在index.html文件或其他地方? –

+1

@PieroAlberto是的,它进入索引文件的头部。如果您创建了一个新的cordova/phonegap项目(“cordova create newproject”),它将创建一个示例index.html,您可以查看 - 但是您必须根据需要适当调整CSP。 –

+0

如果我使用CSP设置,则会出现此错误消息:“拒绝将字符串评估为JavaScript,因为'unsafe-eval'不是下列内容安全策略指令中允许的脚本源:”default-src'self'google .com数据:gap:https://ssl.gstatic.com“。为什么? –

1

,您无法在科尔多瓦/ PhoneGap的视图重定向到托管在其他地方(在手机上,而不是),出于安全原因,一个页面,让你有两种选择:

  1. 使用科尔多瓦/ PhoneGap的插件谷歌地图,如: https://www.npmjs.com/package/cordova-plugin-googlemaps

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

选项#1将是优选的选项。

+0

我的解决办法,所以,我认为,这是最后一个版本的新功能。通过选项#1,我可以打开行程吗? –

+0

我看到你有data =,#1的文档说google.maps.Data不可用。在这种情况下,尝试#2选项可能会更好,并保持原样。 –

+0

upvote for point 2) –

0

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

+0

好主意。值得注意的是,只有当Google地图作为应用程序安装时,这才会起作用。 –