我可以在 Android 浏览器中仅使用 javascript 启动意图吗?
Posted
技术标签:
【中文标题】我可以在 Android 浏览器中仅使用 javascript 启动意图吗?【英文标题】:Can I launch an intent using only javascript in an Android browser? 【发布时间】:2013-03-05 14:09:31 【问题描述】:我有一个 html 页面,显示从当前位置到某个地址的路线。
我也想这样做,但使用地图应用而不是在浏览器中显示。
当我使用时:
<script>
document.location = "geo:0,0?q=myaddress";
</script>
效果很好,但没有显示路线。
我从中读到的内容:android Google Directions Service usable natively? with wrapper framework? Public transit/biking directions available?
应该可以使用这个代码:
String url = "http://maps.google.com/maps?saddr=some+address&daddr=another+Address"
Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(url));
我可以只使用 javascript 做同样的事情吗?
【问题讨论】:
【参考方案1】:Android 能够在浏览器中检测到 Google 地图的链接,并将 Intent
重定向到本机 Google 地图应用(如果它被设置为默认应用)。但是,没有办法强制用户使用 Google 地图应用程序。单击该链接还可以向他显示活动选择器或在浏览器中打开 Google 地图。它还可能会打开一个注册为处理相同Intent
的第三方应用程序。您发布的代码 sn-p 的行为也会完全一样。
这不仅适用于浏览器,还适用于系统中的所有链接。例如,我将您通过电子邮件发布的链接发送给我自己,然后在我的手机上单击它。我可以用我的 Goolge Maps 应用程序打开它。所以真的不需要JavaScript,你可以用一个简单的HTML链接发送Intent
。
【讨论】:
我不同意 JavaScript 部分,因为有时您需要在未安装应用程序的情况下进行后备,因此用户应该能够通过网站的移动版本执行所需的操作。【参考方案2】:只需简单地从 JavaScript 调用函数到 Android ,在函数内部你就可以调用 android Intent。
您可以找到如何从 JavaScript 调用 android 函数的教程:
http://android-er.blogspot.in/2011/10/call-javascript-inside-webview-from.html
并使用 Google V3 库调用地图。
https://developers.google.com/maps/articles/android_v3
【讨论】:
提供的链接仅显示如何使 Java API 可用于在自定义 Android 应用程序内的 WebView 中运行的 JavaScript,但问题是如何从浏览器中运行的 JavaScript 启动意图。不幸的是,这并不能真正回答问题。以上是关于我可以在 Android 浏览器中仅使用 javascript 启动意图吗?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Amazon SNS 在 Android GCM 中仅接收默认消息
Android如何从同一个数组中仅显示列表视图中的某些项目?