android – Intent-filter无法在浏览器中运行

android – Intent-filter无法在浏览器中运行,第1张

概述我正在使用带有类似于 here所述的intent过滤器的Activity,以便能够拦截浏览器中的点击,并为用户提供打开我的应用程序的选项.这是我的AndroidManifest.xml中的代码: <activity android:name="com.scompt.ScomptIntentFilter"> <intent-filter> <data android:sche 我正在使用带有类似于 here所述的intent过滤器的Activity,以便能够拦截浏览器中的点击,并为用户提供打开我的应用程序的选项.这是我的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.VIEWadb -d shell am start -d http://www.scompt.com

是否还有其他地方可以让它发挥作用?我已经验证了我在使用开源hubroid做的事情,我似乎在做同样的事情.

解决方法 关于意图,用户在浏览器中键入URL并跟随网页中的链接,电子邮件等之间存在明显差异.

如果您关注浏览器网页上的链接或电子邮件中的链接,则会按预期触发意图.

但是,当用户在其浏览器的地址栏中键入URL时,AndroID认为用户特别希望该URL在浏览器中打开,因此不会触发意图.

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

当您考虑它时,此系统的工作方式与windows中的默认浏览器行为类似.想象一下,您的默认浏览器是Chrome,但您也安装了firefox.如果您点击电子邮件中的链接,它将在Chrome中打开.但是,如果您打开firefox并在地址栏中输入一个URL并点击它就不能在Chrome中打开,因为很明显您希望在firefox中打开该URL.

@H_419_42@ 总结

以上是内存溢出为你收集整理的android – Intent-filter无法在浏览器中运行全部内容,希望文章能够帮你解决android – Intent-filter无法在浏览器中运行所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1122899.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存