Intent-Filter:使用两个动作以及 Launcher 和 Browsable 类别
Intent-Filter: Using two actions along with Launcher and Browsable category
TL;DR 我可以在一个 intent-filter 中使用两个动作和两个类别吗?
我的应用程序由一个 activity 和五个片段组成。我在 activity.
中有一个 Intent Filter
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
今天,我在清单文件中的 application
标记周围看到一条 lint 消息 "App is not indexable by Google..."。因此,我进行了一些搜索,了解到您可以使用它通过 google 搜索为您的应用编制索引。如果 android 用户从 chrome/systemBrowser 浏览网页 link "www.example.com/myapp",他将被带到我的应用程序而不是网页。对吗?
现在,我必须向 activity 添加一个 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 类别的意图
- 具有 MAIN 操作和 BROWSABLE 类别的意图
- 具有 VIEW 操作和 LAUNCHER 类别的意图
- 具有 VIEW 操作和 BROWSABLE 类别的意图
据我了解,它应该使用第一个选项在设备上打开应用程序,当用户浏览提供的 "www.example.com/myapp" 的浏览器时,它应该使用第一个和第四个选项从 [=65] 打开应用程序=].
我看过这个question,但我需要举个例子来确定。
令人困惑。我可能完全错了,请指导我。
在 SO Chat 的帮助下,我被告知要使用单独的 intent-filters
<activity
android:name=".activities.MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" android:host="www.example.com" android:pathPrefix="/prefix" />
</intent-filter>
</activity>
TL;DR 我可以在一个 intent-filter 中使用两个动作和两个类别吗?
我的应用程序由一个 activity 和五个片段组成。我在 activity.
中有一个 Intent Filter<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
今天,我在清单文件中的 application
标记周围看到一条 lint 消息 "App is not indexable by Google..."。因此,我进行了一些搜索,了解到您可以使用它通过 google 搜索为您的应用编制索引。如果 android 用户从 chrome/systemBrowser 浏览网页 link "www.example.com/myapp",他将被带到我的应用程序而不是网页。对吗?
现在,我必须向 activity 添加一个 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 类别的意图
- 具有 MAIN 操作和 BROWSABLE 类别的意图
- 具有 VIEW 操作和 LAUNCHER 类别的意图
- 具有 VIEW 操作和 BROWSABLE 类别的意图
据我了解,它应该使用第一个选项在设备上打开应用程序,当用户浏览提供的 "www.example.com/myapp" 的浏览器时,它应该使用第一个和第四个选项从 [=65] 打开应用程序=].
我看过这个question,但我需要举个例子来确定。
令人困惑。我可能完全错了,请指导我。
在 SO Chat 的帮助下,我被告知要使用单独的 intent-filters
<activity
android:name=".activities.MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" android:host="www.example.com" android:pathPrefix="/prefix" />
</intent-filter>
</activity>