1

我刚刚为我网站的 Android 应用程序设置了 App Indexing,并根据https://www.example.com/testhttps://example.com/test中指定的说明进行了一些测试:/ /developers.google.com/app-indexing/android/test(使用 Android Studio 测试 URL)

这是我的 Android 清单中的意图过滤器:

<intent-filter android:label="@string/filter_title_default">
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="https"
          android:host="example.com"
          android:pathPrefix="/test" />
</intent-filter>

我注意到https://www.example.com/test失败,但不是https://example.com/test。除了为 www.example.com/test 指定另一个意图过滤器之外,我该如何解决这个问题?

4

2 回答 2

0

您可以为您的意图过滤器指定多个数据元素,为您需要处理您的活动的所有 URL。

要处理指向您的域的 www 和非 www 链接,您可以将您的意图过滤器更改为:

<intent-filter android:label="@string/filter_title_default">
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="https"
          android:host="example.com"
          android:pathPrefix="/test" />
    <data android:scheme="https"
          android:host="www.example.com"
          android:pathPrefix="/test" />
</intent-filter>

或者要处理 example.com 和任何子域,您可以在主机的开头包含一个通配符:

<intent-filter android:label="@string/filter_title_default">
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="https"
          android:host="example.com"
          android:pathPrefix="/test" />
    <data android:scheme="https"
          android:host="*.example.com"
          android:pathPrefix="/test" />
</intent-filter>

此外,如果要匹配所有域 URL,则必须完全删除 pathPrefix 属性,因为将其设置为“/”不会按预期工作。

于 2017-04-06T15:56:35.813 回答
0

据我所知,每个主机都应该添加到一个新的意图过滤器中。您可以参考此文档了解更多信息。

干杯,MB

于 2016-01-12T20:50:54.100 回答