仅使用Javascript从android webview打开Goog​​le地图或新浏览器

时间:2015-06-08 16:39:46

标签: javascript android google-maps webview

我遇到一个问题,我需要通过webview中的点击在Android上打开Goog​​le地图应用。我的所有搜索都会修改android代码中的webview设置。我无法做到这一点。我只能访问在webview中打开的网页。我无法在android中修改java,我必须在页面上使用Javascript。

我尝试过使用:

window.location.href = http://maps.google.com/maps?daddr=但我只在网页上打开地图而非应用。

window.open(与上面相同的链接)同样的问题只在webview中打开。

HREF ="意图://#意图;包= com.google.android.apps.maps;行动= http://maps.google.com/maps?daddr=...;end;" 没有得到任何东西。读一下我必须在android清单中更改某些内容才能使用它,但是我无法访问它。

任何想法?提前谢谢。

1 个答案:

答案 0 :(得分:1)

我认为您可以使用地理链接而不是maps.google.com: https://developer.android.com/guide/components/intents-common.html#Maps

我用

测试了它
<a href="geo:37.786971,-122.399677;u=35">click</a>

它有效。

= - = - = - edit - = - = - =

经过多次挖掘后,事实证明,5.0或之后的WebView的默认行为是不支持url方案,除非你覆盖该函数。

在您的情况下,我认为您最好能够为5.0或更高版本的用户加载网络版,并为其他用户打开地图应用。以下代码应该这样做。

    String htmlString = "<p id=\"demo\" onclick=\"myFunction()\">Click me to open map.</p>\n" +
            "<script>\n" +
            "function myFunction() {\n" +
            "    document.getElementById(\"demo\").innerHTML = \"<iframe style=\\\"display:none\\\" src=\\\"geo:37.786971,-122.399677;u=35\\\"></iframe>\";\n" +
            "    window.open(\"http://maps.google.com/maps?daddr=37.786971,-122.399677\");\n"+
            "}</script>\n";