javascript - 仅使用 Javascript 从 android webview 打开 Google map 或新浏览器

标签 javascript android google-maps webview

我遇到了一个问题,我需要通过在 WebView 中单击来打开 Android 上的 Google map 应用程序。我所有的搜索都涉及修改 android 代码中的 webview 设置。我无法做到这一点。我只能访问在 WebView 中打开的网页。我无法修改android中的java,我必须在页面上使用Javascript。

我尝试过使用:

window.location.href = http://maps.google.com/maps?daddr=但我只能在网页上打开 map ,而不是在应用程序上打开 map 。

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

href="intent://#Intent;package=com.google.android.apps.maps;action= http://maps.google.com/maps?daddr=...;end ;" 没有从中得到任何东西。在某处读到我必须更改 Android list 中的某些内容才能使用它,但我无权访问它。

有什么想法吗?预先感谢您。

最佳答案

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

我用它进行了测试

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

并且它有效。

=-=-=- 编辑-=-=-=

经过更多挖掘,发现 5.0 或更高版本上的 WebView 的默认行为是不支持 url 方案,除非您重写该函数。

就您而言,我认为您最好为 5.0 或更高版本的用户加载网络版本,并为其他用户打开 map 应用程序。下面的代码应该可以做到这一点。

    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";

关于javascript - 仅使用 Javascript 从 android webview 打开 Google map 或新浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30714682/

相关文章:

javascript - 计算字 rune 本区域并更改颜色计数

javascript - 如何制作仅在 X 分钟后可见的 javascript/jQuery 倒计时?

android-sdk\docs\reference 丢失

android gradle任务源码

javascript - 如何在第一次点击链接 <a href ="abc.jsp"target ="_blank"> 后不打开点击的新窗口,

javascript - 从父级继承颜色并在 CSS 中执行颜色着色

android - 配对蓝牙设备有优势吗?

ios - 无法获取地点 - REQUEST_DENIED

javascript - 如何验证我的谷歌地图搜索文本框是否存在无效输入?

javascript - 我可以让谷歌地理编码器在找不到位置时告诉我,而不是只选择城市的中心吗?