我正在尝试为 Android 应用程序实现深层链接。问题是,每当用户按下与应用程序关联的域下的链接之一时,网络浏览器就会打开。
该应用程序是使用 React Native 开发的,并通过 Expo 捆绑。
这是 Expo 应用程序的
app.config.js
文件的相关部分:
intentFilters: [
{
action: 'VIEW',
autoVerify: true,
data: [
{
scheme: 'https',
host: 'centrito.co',
pathPrefix: '/products',
},
],
category: ['BROWSABLE', 'DEFAULT'],
},
{
action: 'VIEW',
autoVerify: true,
data: [
{
scheme: 'https',
host: 'www.centrito.co',
pathPrefix: '/products',
},
],
category: ['BROWSABLE', 'DEFAULT'],
},
{
action: 'VIEW',
autoVerify: true,
data: [
{
scheme: 'https',
host: 'centrito.co',
pathPrefix: '/account/orders',
},
],
category: ['BROWSABLE', 'DEFAULT'],
},
{
action: 'VIEW',
autoVerify: true,
data: [
{
scheme: 'https',
host: 'www.centrito.co',
pathPrefix: '/account/orders',
},
],
category: ['BROWSABLE', 'DEFAULT'],
},
],
这就是
assetlinks.json
的内容:
[
{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "com.centrito.app",
"sha256_cert_fingerprints":
["4F:7A:AD:EC:06:9C:BA:A3:FD:A6:96:77:7B:8C:6C:C8:17:95:09:C0:59:8D:83:A3:F4:1A:B9:5E:C9:6F:CA:FD"]
}
}
]
一些相关事实:
curl -I
以请求 /.well-known/assetlinks.json
并返回状态代码 200 的响应,因此服务器配置和重定向很可能不是罪魁祸首。在调试时,我提取了以下信息:
adb logcat
不会产生任何有关该应用程序的信息
自动验证过程。adb shell pm verify-app-links --re-verify com.centrito.app
和 adb shell pm get-app-links com.centrito.app
进行检查时,控制台中不会打印任何内容。考虑到之前的所有数据点,我认为自动验证过程根本没有发生。还有什么其他原因可以解释这种奇怪的行为?谷歌可能对此有错吗?
您能在这方面取得任何进展吗?