我可以在 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 启动意图吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何在科尔多瓦 Android 应用程序中仅定位平板设备

使用 Amazon SNS 在 Android GCM 中仅接收默认消息

如何在 Webkit 浏览器中仅(且仅)选择部分页面

Android如何从同一个数组中仅显示列表视图中的某些项目?

在 Android Kotlin 的 recyclerView 中仅显示第一个项目并隐藏同名项目

如何在android中仅扩展textview