gpt4 book ai didi

android - Intent-filter 不适用于浏览器

转载 作者:太空宇宙 更新时间:2023-11-03 11:40:37 25 4
gpt4 key购买 nike

我正在使用一个带有意向过滤器的 Activity ,类似于 here 中描述的那个能够拦截浏览器中的点击并为用户提供打开我的应用程序的选项。这是我的 AndroidManifest.xml 中的代码:

<activity android:name="com.scompt.ScomptIntentFilter">
<intent-filter>
<data android:scheme="http" android:host="www.scompt.com" />
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
</intent-filter>
</activity>

如果我在浏览器中输入 http://www.scompt.com,这将不起作用。页面已加载,就像正常一样。

如果我在命令行中输入以下任一命令,就会在我的应用程序和浏览器之间获得标准选择器,正如我所期望的那样。

adb -d shell am start -d http://www.scompt.com -a android.intent.action.VIEW
adb -d shell am start -d http://www.scompt.com

有没有其他我应该寻找的地方让它发挥作用?我已经用开源 hubroid 验证了我在做什么我似乎也在做同样的事情。

最佳答案

关于 Intent ,用户在浏览器中键入 URL 与点击网页、电子邮件等中的链接之间存在明显差异。

如果您点击浏览器网页上的链接或电子邮件中的链接,将如您所愿地触发一个 Intent。

但是,当用户在浏览器的地址栏中键入 URL 时,Android 认为用户明确希望该 URL 在浏览器中打开,因此不会触发 intent。

因此,如果您想测试 URL 和 Intent 过滤器,则需要设置一个带有超链接的静态网页或向您的手机发送电子邮件。

仔细想想,这个系统的工作方式与 Windows 中的默认浏览器行为类似。假设您的默认浏览器是 Chrome,但您还安装了 Firefox。如果您单击电子邮件中的链接,它将在 Chrome 中打开。但是,如果您打开 Firefox 并在地址栏中输入一个 URL,然后点击“开始”,它不会在 Chrome 中打开,因为显然您希望该 URL 在 Firefox 中打开。

关于android - Intent-filter 不适用于浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10799065/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com