我正在使用Android应用程序并尝试使用浏览器中的href来打开我的应用程序。我尝试了几次,发现了一些有趣的东西(或者只是我不够聪明)。通过Chrome浏览器打开Android应用程序 - 单击事件
当我检测到用户使用Android手机,我会触发href的点击事件,然后我的应用程序应该打开。 Firefox工作正常,Chrome确实触发了点击事件,但什么都不做。当我单独(通过我的手指)单击href时,它可以工作。所以现在我不知道如果铬不能让我通过代码打开我的应用程序,或者只是我使用了错误的方式。
此外,当我将href更改为“https://www.google.com”时,Firefox和Chrome都可以工作。
<a id="goToMyApp" href="intent://myHost/#Intent;package=myPackage;scheme=https;end;">
click me</a>
<script type="text/javascript">
var goToMyApp = document.getElementById("goToMyApp");
if (navigator.userAgent.match(/Android/)) {
setTimeout("goToMyApp.click()",1000);
}
</script>
这里是我在AndroidManifest.xml中的意图过滤器,但我不认为有问题。
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="https" android:host="myHost" android:path="/"/>
</intent-filter>
有没有人有这方面的想法?
编辑:
我阅读文档有关Android Intents with Chrome
再次在这里:https://developer.chrome.com/multidevice/android/intents终于看见在页面底部的评论。
Chrome在以下情况下不会为给定的Intent URI启动外部应用程序。
- 当Intent URI从输入的URL重定向。
- 当Intent URI在没有用户手势的情况下启动时。 (这个人是什么,我试图做的)
我认为这是因为Chrome浏览器不会让页面由代码开始的意图的安全政策。这就解释了为什么我可以通过手势而不是通过代码来打开我的应用程序。
我会离开这个问题,希望它可以帮助其他人尝试做同样的事情。
发帖只是不加解释的一个片段是没有用的。请指出你添加/修改的内容,作者必须检查的内容等。 – juzraai
嗨@ELDHOSEBABY,谢谢你的回答,但它仍然不起作用。我将我的代码更改为与您的代码完全相同。但Chrome仍然无法通过代码触发。 –
请为下面的intent过滤器中的动作命名,并尝试使用aherf的 。 点击我或Link to my stuff请尝试使用这些aherf的 –