10

我正在寻找一种从 phonegap 包装的 JavaScript 应用程序打开应用程序的本机地图应用程序的方法。

到目前为止,我的研究表明,对于 Android,我将不得不使用这种格式的链接:

<a href="geo:38.897096,-77.036545">Geolocation Test</a>

这是有问题的,因为我将不得不使用外部服务将地址转换为经度和纬度坐标,这是我希望尽可能避免的事情。

在 iOS 的情况下,这要简单得多。我只需要以这种格式给它一个链接:

<a href="maps:q=Bacau">Test 2</a>

并且本地地图应用程序已打开。

有没有什么方法,类似于 iOS 中的方法,让 Android 给它一个带有特定格式地址的普通链接,并且设备会知道打开它的本机地图应用程序?

4

2 回答 2

14

查看Android 意图列表,应该可以使用URI 空间中的q参数。geo:

试试这个:

<a href="geo:0,0?q=Bacau">Test</a>
于 2013-08-09T21:07:13.210 回答
10

Cordova 3.6.0引入了第二个白名单,用于限制允许哪些 URL 启动外部应用程序。在以前的 Cordova 版本中,所有非 http URL,例如 mailto:、geo:、sms: 和 intent,都被隐式允许成为 a 标记的目标。由于应用程序可能泄露信息,如果 XSS 漏洞允许攻击者构建任意链接,则这些 URL 也必须被列入白名单,从 Cordova 3.6.0 开始。

Cordova 3.6.0 白名单指南

所以需要在 config.xml 中显式添加:

  <access origin="tel:*" launch-external="yes" />
  <access origin="mailto:*" launch-external="yes" />
于 2014-10-11T17:21:17.020 回答