仅使用域名或特定路径的域名通过 Android AppLinks 打开 Android 应用的完整指南
2024-03-12 15:03:28
仅使用域或特定路径的域通过 Android AppLinks 打开 Android 应用
问题陈述
你想使用 domain
或 domain/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:scheme
和 android: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 的旧设备,你可以使用传统的方法,例如隐式意图,来打开你的应用。