Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
仅使用Javascript从android webview打开Google地图或新浏览器_Javascript_Android_Google Maps_Webview - Fatal编程技术网

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

仅使用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

我有一个问题,我需要在Android上通过单击webview打开谷歌地图应用程序。我所有的搜索都会修改android代码中的webview设置。我不能这样做。我只能访问在webview中打开的网页。我不能在android中修改java,我必须在页面上使用Javascript

我试过使用:

window.location.href=但我只在网页上打开地图,而不是在应用程序上打开地图

打开(与上面的链接相同)相同的问题只会在webview中打开

href=“intent://#intent;package=com.google.android.apps.maps;action=;” 没有从中得到任何东西。在某个地方读到我必须更改android清单中的某些内容才能使用它,但我没有访问权限


有什么想法吗?提前谢谢。

我想你可以使用地理链接而不是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。