仅使用Javascript从android webview打开Google地图或新浏览器
我有一个问题,我需要在Android上通过单击webview打开谷歌地图应用程序。我所有的搜索都会修改android代码中的webview设置。我不能这样做。我只能访问在webview中打开的网页。我不能在android中修改java,我必须在页面上使用Javascript 我试过使用: window.location.href=但我只在网页上打开地图,而不是在应用程序上打开地图 打开(与上面的链接相同)相同的问题只会在webview中打开 href=“intent://#intent;package=com.google.android.apps.maps;action=;” 没有从中得到任何东西。在某个地方读到我必须更改android清单中的某些内容才能使用它,但我没有访问权限仅使用Javascript从android webview打开Google地图或新浏览器,javascript,android,google-maps,webview,Javascript,Android,Google Maps,Webview,我有一个问题,我需要在Android上通过单击webview打开谷歌地图应用程序。我所有的搜索都会修改android代码中的webview设置。我不能这样做。我只能访问在webview中打开的网页。我不能在android中修改java,我必须在页面上使用Javascript 我试过使用: window.location.href=但我只在网页上打开地图,而不是在应用程序上打开地图 打开(与上面的链接相同)相同的问题只会在webview中打开 href=“intent://#intent;pack
有什么想法吗?提前谢谢。我想你可以使用地理链接而不是maps.google.com: 我试了一下
<a href="geo:37.786971,-122.399677;u=35">click</a>
它是有效的
=-=-=-编辑-=-=-=
在进一步挖掘之后,发现WebView在5.0或之后的默认行为是不支持url方案,除非重写该函数
在您的情况下,我认为您最好为5.0或更高版本的用户加载web版本,并为其他用户打开“地图”应用程序。下面的代码应该可以做到这一点
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";
String htmlString=“单击我打开地图。
\n+
“\n”+
“函数myFunction(){\n”+
“document.getElementById(\“demo\”)。innerHTML=\“\”;\n”+
“窗口。打开(\”http://maps.google.com/maps?daddr=37.786971,-122.399677\”;\n“+
“}\n”;
kaho感谢您的回答。不幸的是,这对我不起作用。如果我像你在页面上做的那样创建一个链接,它会工作,但我需要在If-else语句中使用它。我得到:“位于geo:0,0?q=…的网站可能暂时关闭,或者它可能已经移动了…”这是一个检查您访问的移动设备的函数的内部。if{…}else{window.location.href=“geo:0,0?q=“+address;}huh。。是的,我认为window.open()
可以在4.4或更低版本上使用;我试过了,但在5.1.1和M。