【问题标题】:Intent-Filter: Using two actions along with Launcher and Browsable categoryIntent-Filter:使用两个操作以及 Launcher 和 Browsable 类别
【发布时间】: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 将只匹配其中一个:

    1. 具有 MAIN 操作和 LAUNCHER 类别的意图
    1. 具有主要操作和可浏览类别的意图
    1. 带有 VIEW 动作和 LAUNCHER 类别的意图
    1. 具有 VIEW 操作和 BROWSABLE 类别的意图

据我了解,它应该使用第一个选项在设备上打开应用程序,当用户使用提供的“www.example.com/myapp”浏览浏览器时,它应该使用第一个和第四个选项从链接打开应用程序.

我看过这个question,但我需要确定一个例子。

这令人困惑。我可能完全错了,请指导我。

【问题讨论】:

    标签: android android-intent android-manifest intentfilter deep-linking


    【解决方案1】:

    在 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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-21
      • 2011-03-12
      • 1970-01-01
      • 1970-01-01
      • 2013-08-14
      • 2019-07-27
      • 2021-08-14
      • 2019-03-29
      相关资源
      最近更新 更多