我已经按照官方文档为我的 Flutter 应用程序实现了深度链接功能。但是,在 Android 上,当我在浏览器上打开深层链接时,它不会启动该应用程序。
这是我的 AndroidManifest.xml 文件
<!-- <meta-data android:name="flutter_deeplinking_enabled" android:value="true" /> -->
<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="app.name.com" />
</intent-filter>
这是我的domain/.well-known/assetlinks.json 文件
[
{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "com.company.app",
"sha256_cert_fingerprints": [ "DB:34:11:E3.....
]
}
}
]
我在 Firebase 托管上托管此文件,这是我的 firebase.json 文件
{
"hosting": {
"public": "public",
"appAssociation": "NONE",
"ignore": ["firebase.json", "**/.*", "**/node_modules/**"],
"headers": [
{
"source": "/.well-known/assetlinks.json",
"headers": [
{
"key": "Content-Type",
"value": "application/json"
}
]
},
{
"source": "/.well-known/apple-app-site-association",
"headers": [
{
"key": "Content-Type",
"value": "application/json"
}
]
}
],
"rewrites": [
{
"source": "/.well-known/apple-app-site-association",
"destination": "/.well-known/apple-app-site-association"
},
{
"source": "/.well-known/assetlinks.json",
"destination": "/.well-known/assetlinks.json"
},
{
"source": "**",
"destination": "/index.html"
}
]
}
}
当我使用命令测试应用程序如何处理深层链接时,它按预期工作
adb shell 'am start -a android.intent.action.VIEW \
-c android.intent.category.BROWSABLE \
-d "https://app.name.com"' \
com.company.app
在 IOS 上,它工作正常(我可以选择在顶部打开应用程序),但在 Android 上它无法按预期工作。那么这里可能存在什么问题?
您是否添加了 sha256_cert_fingerprints 以在 /.well-known/assetlinks.json 文件上发布?