【发布时间】:2015-05-30 13:01:08
【问题描述】:
好的,所以我知道肯定不止这些。我在这里读过很多答案,都说同样的话,但这对我不起作用。我希望能够使用来自浏览器的自定义 URL 方案的链接打开一个 Android 应用程序。首先,我使用的是模拟器(实际上是 Genymotion),所以我不知道这是否与它有关。我看到的答案一直在说我所需要的只是与此类似的东西:
<intent-filter>
<data android:scheme="myapp" android:host="hello"/>
<action android:name="ANDROID.INTENT.ACTION.VIEW"/>
<category android:name="ANDROID.INTENT.CATEGORY.BROWSABLE"/>
<category android:name="ANDROID.INTENT.CATEGORY.DEFAULT"/>
</intent-filter>
我把它放在一个新的空白活动上,而不是主要活动上。
如果我理解正确,任何以myapp://hello 开头的 URL 都将使用该意图过滤器打开活动。但是,无论我尝试什么,我都会在浏览器中不断收到 ERR_UNKNOWN_URL_SCHEME。这是库存的 Android 浏览器,因为我无法将 Chrome 放在 Genymotion 上(至少不是免费版本)。这是需要 Chrome 的东西吗?这是只能在实际设备上完成的事情吗?是不是我做错了什么?
【问题讨论】:
-
ANDROID.INTENT.ACTION 和 ANDROID.INTENT.CATEGORY 必须小写
-
好的,就是这样。我一开始就没有意识到这一点,我感到很愚蠢。但是,如果您开始在所有大写字母中输入最后一部分(如“VIEW”),Android Studio 显然会将整个字符串插入大写字母中,即使代码完成以小写形式显示它也是如此。谢谢!
-
是的,这是 IDE 的一个错误。不客气
标签: android intentfilter