返回

仅使用域名或特定路径的域名通过 Android AppLinks 打开 Android 应用的完整指南

Android

仅使用域或特定路径的域通过 Android AppLinks 打开 Android 应用

问题陈述

你想使用 domaindomain/journal 来打开你的 Android 应用。尽管在 intent-filter 中添加 domain/journal 可以正常工作,但你希望即使链接仅包含 domain 也能打开应用。例如,当用户点击 www.somedomain.com URL 时,你的应用应该打开。

解决方案

要仅在链接中包含 domain 的情况下打开应用,你需要在 intent-filter 中添加一个额外的 data 元素。以下是更新后的 intent-filter

<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.somedomain.com" />
    <data android:scheme="https" android:host="www.somedomain.com" android:pathPrefix="/journal" />
</intent-filter>

解释

第一个 data 元素指定了在链接中只包含 domain 时应该打开应用。第二个 data 元素指定了在链接中包含 domain/journal 时也应该打开应用。

示例

使用此更新后的 intent-filter,以下链接将打开你的应用:

注意

确保已正确配置应用的 AndroidManifest.xml 文件。具体来说,确保已将 android:schemeandroid:host 属性与你的域和应用包名称匹配。

完整代码示例

<manifest ...>

    <application ...>
        <activity ...>

            <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.somedomain.com" />
                <data android:scheme="https" android:host="www.somedomain.com" android:pathPrefix="/journal" />
            </intent-filter>

        </activity>
    </application>

</manifest>

其他注意事项

  • 确保你的应用已在 Google Play 商店中注册并拥有有效的证书。
  • 测试你的应用以确保它可以根据预期打开链接。

常见问题解答

1. 为什么我需要在 intent-filter 中添加额外的 data 元素?

为了允许在链接中仅包含 domain 时打开应用。

2. 我可以在 intent-filter 中添加任意数量的 data 元素吗?

是的,你可以添加任意数量的 data 元素,以处理指向你的应用的不同类型的链接。

3. 如何处理具有不同子域的链接?

你需要为每个子域添加一个单独的 data 元素。

4. 我的应用为什么无法通过链接打开?

请确保你的应用的 AndroidManifest.xml 文件已正确配置,并且你的应用已在 Google Play 商店中注册并拥有有效的证书。

5. 如何处理不支持 AppLinks 的旧设备?

对于不支持 AppLinks 的旧设备,你可以使用传统的方法,例如隐式意图,来打开你的应用。