Android 带有'#';不起作用
我正在尝试设置一个意图过滤器,以便在用户单击以下URI时启动我的活动: example.com/pathA/pathB/#pathC/someGUID 因此,我将以下XML添加到清单文件中:Android 带有'#';不起作用,android,android-activity,intentfilter,Android,Android Activity,Intentfilter,我正在尝试设置一个意图过滤器,以便在用户单击以下URI时启动我的活动: example.com/pathA/pathB/#pathC/someGUID 因此,我将以下XML添加到清单文件中: <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" />
<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="example.com"
android:pathPrefix="/pathA/pathB/#pathC"
android:scheme="http" />
</intent-filter>
我认为“#”字符把一切都搞糟了,但我试图逃出这个字符,但没有运气。有什么想法吗
更新:当我说“尝试转义”时,我的意思是使用百分比编码(#等于%23)意图过滤器用于解析URI并确定是否存在匹配项
#
是数字的URI通配符,如中的示例所示。根据,没有转义序列来转义URI中的#
。因此,您应该使用另一个非保留符号(请注意,*
也保留为任何文本的通配符)。@user1774914-对-似乎没有一种方法来处理包含#
的URI。您当然可以处理/pathA/pathB/
并手动检查#pathC
的URI的其余部分,但在系统看来,您也可以处理类似/pathA/pathB/pathD
的URI。奇怪的是,android文档说。。。因为在从XML读取字符串时(在将其解析为模式之前),将“\”用作转义字符,所以需要双重转义:例如,文本“*”将被写为“\*”,而文本“\”将被写为“\\\”。这基本上与在Java代码中构造字符串时需要编写的内容相同。这会让您相信可以像\\#一样逃避it,但这仍然不起作用。我想这只是一个禁区。2年后,你有没有找到办法解决这个问题?我们真的应该通过检查应用程序代码中的URL来解决这个问题吗?如果它与所需的模式不匹配,我们只需打开浏览器就可以了?在意图过滤器解析方面没有任何变化