我一直在尝试创建一个在浏览器中输入特定网址时自动打开的应用。为此,我一直在我的清单中使用和意图过滤,如下所示:
<intent-filter>
<data android:scheme="http" android:host="maltapark.com"/>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT"></category>
<category android:name="android.intent.category.BROWSABLE"></category>
</intent-filter>
这样可以正常工作,但仅限于我的默认网络浏览器。当我使用chrome时,应用程序无法打开。 我也试过使用firefox,它只用一些但不是所有的URL打开我的应用程序,例如abc:// test。
有没有办法让我的应用程序打开,无论使用的浏览器或网址如何?
答案 0 :(得分:2)
您可以使用intent
方案,explained here。 “Android浏览器”可能支持也可能不支持,您可能不得不依赖iframe。 FireFox做的是任何人的猜测,但我个人认为FireFox并不是Android平台上的一个重要竞争者。
答案 1 :(得分:0)
在清单中使用它
<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:host="maltapark.com"
android:path="/"
android:scheme="TESTSCHEME" />
</intent-filter>
并在标签中使用
"intent://maltapark.com/#Intent;scheme=TESTSCHEME;package=com.YOURPACKAGENAME.www;end"
这对我有用
答案 2 :(得分:-1)
您尝试拦截应用的网址是什么?你提到它没有像abc:// test这样的东西,这是正确的。
您的意图过滤器声明它想拦截与http://maltapark.com匹配的网址。
如果网址与该网址不匹配,则无法打开。
答案 3 :(得分:-1)
尝试在android:scheme中添加'*'通配符,也许安装android:host属性(如果这是你需要的)。