1

我的清单文件中需要多个主机来链接应用程序,但这不起作用。如果我在同一个意图过滤器中添加另一个带有另一个主机的数据标签..之前工作的数据标签不再工作。多个意图过滤器也是如此。如果我尝试为该其他主机添加另一个意图过滤器,则第一台主机(和第二台主机)不起作用。

在这里你可以看到我做了什么:

AndroidManifest.xml

<intent-filter android:autoVerify="true">
            <action android:name="android.intent.action.VIEW" />

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

            <data
                android:host="www.host1.com"
                android:pathPattern="/path/.*"
                android:scheme="https" />
</intent-filter>
<intent-filter android:autoVerify="true">
            <action android:name="android.intent.action.VIEW" />

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

            <data
                android:host="www.host2.com"
                android:pathPattern="/path/.*"
                android:scheme="https" />
</intent-filter>

如果我使用 host2 删除意图过滤器,host1 将起作用!

有任何想法吗?

4

2 回答 2

2

来自文档 的引用android:autoVerify="true"您的任何一个意图过滤器中存在该选项时,在 Android 6.0 及更高版本的设备上安装您的应用程序会导致系统尝试验证与您的应用程序的任何意图过滤器中的 URL 关联的所有主机。

很可能您的 host2 下没有assetlinks.json。所以系统检查两个主机都被授权,而host2失败了,所以整个验证失败,包括host1。

PS 使用意图过滤器进行不同的活动也无济于事。文档链接在这里

于 2021-02-01T12:33:31.283 回答
0

尝试将此意图过滤器添加到与另一个不同的活动中,或尝试为每个主机名创建多个虚拟入口点。

我知道这并不理想,但它会成功的

有关如何实现它的更多信息,请参见此处:

https://developer.android.com/training/app-links/verify-site-associations

例子:

<activity android:name=”MainActivity”&gt;

    <intent-filter android:autoVerify="true">

      <action android:name="android.intent.action.VIEW" />
      <category android:name="android.intent.category.DEFAULT" />
      <category android:name="android.intent.category.BROWSABLE" />
      <data android:scheme="http" android:host="www.example.com" />
      <data android:scheme="https" />
    </intent-filter>
  </activity>
  <activity android:name=”ShadowActivity1”&gt;
    <intent-filter>
      <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="www.example.net" />
    </intent-filter>
  </activity>

<activity android:name=”ShadowActivity2”&gt;

    <intent-filter>
      <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="www.example123332.net"/>
    </intent-filter>

  </activity>
于 2020-04-30T12:39:55.593 回答