我们为 Android 和 iOS 开发了一款 Flutter 应用,具有不同的风格:dev
、test
和 prod
,因此我们有 6 个应用全部的。为了吸引用户,我们通过电子邮件发送一个 Firebase 动态链接(其中包含深层链接),以便在用户点击时将其导航到特定屏幕。
预期的行为是,当用户点击 dev
应用程序的动态链接时,它会在 dev
应用程序中打开一个屏幕。其他口味类似。
现在这在 Android 上运行得很好。
在 iOS 上,如果仅安装一个应用程序,则可以正常工作,但如果安装了 dev
和 test
应用程序,则点击动态链接始终打开测试应用程序。安装 dev
、test
和 prod
时也是如此:打开 test
。
这是一个开发问题,与生产无关,因为用户永远不会安装测试或开发应用程序,但这让我们很恼火,因为我们必须一直卸载并重新安装 flavor 。
我们的动态链接具有以下格式(“<>”中的值是占位符):
Dev: https://<app_id>.page.link/?link=http://dev.<mydomain>.com/reset?token=token1&apn=<mypackage>.dev&isi=<isiNumber1>&ibi=<mypackage>.dev
Test: https://<app_id>.page.link/?link=http://test.<mydomain>.com/reset?token=token2&apn=<mypackage>.test&isi=<isiNumber2>&ibi=<mypackage>.test
Prod: https://<app_id>.page.link/?link=http://<mydomain>.com/reset?token=token3&apn=<mypackage>&isi=<isiNumber3>&ibi=<mypackage>
对于我在真实设备上使用的所有 iOS 版本,即 iOS 11、12 和 13,该行为都是相同的。
我们使用 Flutter 1.9.1-hotfix6
和 firebase_dynamic_links 0.5.0+1
知道这可能是由什么引起的吗?
最佳答案
Firebase 动态链接不支持对同一 Firebase 项目中包含的多个 iOS 应用/目标使用相同的网址前缀。
您可以通过多种方式解决此问题:
使用多个(子)域(如 already suggested by Janmenjaya )
使用自定义域
使用多个 Firebase 项目(如 already suggested by Aleksandr )
在 Android 上,它开箱即用,因为您负责将路径与 list 文件中的特定应用程序进行匹配。在 iOS 上它不起作用,因为 Firebase 负责托管 apple-app-site-association
文件中的此类匹配。
如需了解更多信息,我已写 an extensive answer here .
关于ios - 在 iOS 上安装多种风格时,Firebase 动态链接无法打开正确的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59199247/