我遇到了一个问题,我需要通过在 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/