【发布时间】:2014-01-14 13:32:14
【问题描述】:
我想识别不同的 url 并用特定的活动打开它。
我在清单中声明了意图过滤器,如果我使用简单的条件,它就可以工作:
<data
android:host="www.myhost.fr"
android:pathPattern="/.*\\.shtml"
android:scheme="http" />
如果我想区分“故事”和“视频”这样的关键词,我会像这样改变我的 pathPattern。
活动故事:
<data
android:host="www.myhost.fr"
android:pathPattern="/.*story\\.shtml"
android:scheme="http" />
活动视频:
<data
android:host="www.myhost.fr"
android:pathPattern="/.*video\\.shtml"
android:scheme="http" />
编辑 我尝试拦截的网址:
- 网址故事:http://www.myhost.fr/lot_of_useles_text4085280/story.shtml
- 视频网址:http://www.myhost.fr/lot_of_useles_text309434/video.shtml
- 网址匹配:http://www.myhost.fr/lot_of_useles_text/match_mtc616710.shtml
故事和视频的 ID 位于“/”之前。对于匹配,它是不同的。
当我测试此解决方案时,无法识别该模式。如果我在网络上用正则表达式测试它,它说它是正确的。
有什么想法吗?
【问题讨论】:
-
你想精确匹配哪个网址?
-
我添加了,感谢您的关注
-
我不是 100% 确定,所以我不会创建答案,但您可以尝试:“/.*/video.shtml”
-
那行不通。首先,您必须转义要解释的特殊字符,例如“.”。我的第一个例子正在工作。当我尝试使用“word”来区分 2 种不同类型的 url 时,就会出现问题。
标签: android regex android-manifest url-scheme