【问题标题】:Android deeplink two separate activitiesAndroid 深度链接两个单独的活动
【发布时间】:2016-10-31 17:16:55
【问题描述】:

我有两个要深层链接的活动

一个与关注网址链接的活动

http://abc.or/deals

以下是它的意图过滤器

      <intent-filter>
            <data
                android:host="abc.or"
                android:path="/deals"
                android:scheme="http" />
            <action android:name="android.intent.action.VIEW" />

            <category android:name="android.intent.category.BROWSABLE" />
            <category android:name="android.intent.category.DEFAULT" />
       </intent-filter>

另一个带有以下网址的活动

http://abc.or/deals?category=Air+Conditioner-Refrigerator-

<intent-filter>
            <data
                android:host="abc.or"
                android:path="/deals"
                android:pathPattern="*deals/?category*"
                android:scheme="http" />
            <action android:name="android.intent.action.VIEW" />

            <category android:name="android.intent.category.BROWSABLE" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>

但是点击任何 url 深层链接对这两个活动都有效,这是我如何解决这个问题的问题

【问题讨论】:

  • 据我所知,您需要为意图过滤器设置一个活动,当您通过您的 URL 获得该活动的深层链接时,您需要决定重定向特定活动
  • 不要将路径与 pathPattern 一起使用。仅将后者用于第二个意图过滤器。还有android:pathPattern="deals/.*"

标签: android regex android-manifest deep-linking


【解决方案1】:

很遗憾,这是不可能的。 因为两个意图过滤器中的路径相同。

作为替代方案,只为用户提供一个建议,

  1. 从第二个活动中删除意图过滤器
  2. 在第一个活动中解析来自intent.getDataString() 的 URI 数据,并根据此数据将用户重定向到第二个活动。

【讨论】: