Android:用 JS 设置 window.location

Posted

技术标签:

【中文标题】Android:用 JS 设置 window.location【英文标题】:Android: Set window.location with JS 【发布时间】:2016-11-29 20:53:03 【问题描述】:

参考:How do I open any app from my web browser (Chrome) in android? What do I have to do with the A Href link?

<p>
  <a href="intent://scan/#Intent;scheme=zxing;package=com.google.zxing.client.android;end">Take a qr code</a><br>
</p>

如果用户使用 Android Chrome 单击链接,则会打开条形码扫描仪应用。但如果我设置 window.location = "intent url" 它不会打开条形码扫描仪应用程序。

intent://scan/#Intent;scheme=zxing;package=com.google.zxing.client.android;end

Chrome 不允许这样做吗?有没有办法解决这个问题?

【问题讨论】:

您必须在触摸事件中执行此操作(否则 Chrome 会记录警告消息) @SimonMarquis 谢谢。如何触发触摸事件? 它对应一个用户动作,你不能伪造那个行为 $('#link')[0].click();适用于 http 链接。但对于 fb://profile 或 intent://,它不起作用 【参考方案1】:

您可以使用implicit intent。

可以在here 找到一个很好的教程。您可以打开任何自定义协议网址,如下所示,它不仅可以是 chrome,还可以是任何移动浏览器。

example://SomeHostPrefix/?UserName=abcdef&SessionId=12345

但是,您无法打开任意应用程序,该应用程序必须在其清单文件中声明了某些内容:

【讨论】:

例如,隐式意图 fb://profile 不适用于 window.location。 好吧,我已经提到,如果用户使用 Android Chrome 单击链接(锚标记),则会打开条形码扫描仪应用程序。但它不起作用,如果我在页面加载时设置 window.location = "intent url"。

以上是关于Android:用 JS 设置 window.location的主要内容,如果未能解决你的问题,请参考以下文章

JS中字符串的true转化为boolean类型的true

花里胡哨的 JS 装逼指南

android 中 webview 怎么用 localStorage

一个Canvas如何设置点击事件?

android webview如何获取网页输出的提示信息

android中webView加载H5,JS不能调用问题的解决