【发布时间】:2016-11-15 18:42:29
【问题描述】:
TL;DR 我可以在一个意图过滤器中使用两个动作和两个类别吗?
我的应用由一个活动和五个片段组成。我在这个活动中有一个意图过滤器。
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
今天,我在清单文件中的 application 标记周围看到一条 lint 消息“Google 无法索引应用程序...”。所以,我做了一些搜索,发现你可以使用它通过谷歌搜索来索引你的应用程序。如果 android 用户从 chrome/systemBrowser 浏览网页链接“www.example.com/myapp”,他将被带到我的应用程序而不是网页。对吧?
现在,我必须向活动添加一个 ActionView。而且,我的意图过滤器将变为,
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" android:host="www.example.com" android:pathPrefix="/myapp" />
</intent-filter>
但是,我读到使用两个动作并不好。这是一个逻辑或运算。 Intent-Filter 将只匹配其中一个:
- 具有 MAIN 操作和 LAUNCHER 类别的意图
- 具有主要操作和可浏览类别的意图
- 带有 VIEW 动作和 LAUNCHER 类别的意图
- 具有 VIEW 操作和 BROWSABLE 类别的意图
据我了解,它应该使用第一个选项在设备上打开应用程序,当用户使用提供的“www.example.com/myapp”浏览浏览器时,它应该使用第一个和第四个选项从链接打开应用程序.
我看过这个question,但我需要确定一个例子。
这令人困惑。我可能完全错了,请指导我。
【问题讨论】:
标签: android android-intent android-manifest intentfilter deep-linking