Vis*_*a ツ 7 android deep-linking ios firebase firebase-dynamic-links
Android 和 iOS 的 Firebase 动态链接的行为是否不同?如何为 iOS 中的不同目标为同一项目实施 Firebase 动态链接?
在 Android 中,Firebase 动态链接适用于不同的风格,但在 iOS 中,Firebase 动态链接不适用于不同的目标。
对于 iOS,对于具有不同目标的同一项目,我必须使用 Firebase 为 Firebase 动态链接实现什么?
Android 和 iOS 的 Firebase 动态链接行为差异的实际原因是什么?要为不同的目标实施 Firebase 动态链接,我是否必须为同一应用程序创建单独的项目?
Firebase 动态链接不支持对包含在同一 Firebase 项目中的多个 iOS 应用/目标使用相同的网址前缀。不过有多种解决方法:
如果每个 iOS 应用程序都使用自己的(子)域进行动态链接,则它会起作用。例如,不是仅pets.page.link
用于所有目标,而是cats.page.link
用于您的第一个应用目标和dogs.page.link
第二个应用目标。对此的关键要求是您的每个目标Associated Domains Entitlement
只包含它应该侦听的(子)域。
就我个人而言,我正在使用这个解决方案,它工作得很好。
如果您坚持对所有目标使用相同的域,您应该能够通过使用自定义域以及一些额外的工作来解决这个问题。
按照官方文档设置自定义域,my-own-fancy-pet-app.com
而不是使用 Firebase 本机提供的任何 URL 前缀(如pets.page.link
)。
创建firebase.json
文件时,不要使用建议的"appAssociation": "AUTO",
选项,而是将其设置为NONE
. 这将阻止 Firebase 自动创建有问题的apple-app-site-association
文件(以及assetlinks.json
)。改用 Firebase 托管来提供手动创建的版本。然后您可以使用apple-app-site-association
来根据您的需要对其进行配置,即仅将特定路径重定向到每个目标,而不是将所有路径匹配到所有目标。
免责声明:我还没有测试过这种方法,因为在我的情况下它不值得额外的工作。
当然,您可以简单地为每个目标创建一个新的 Firebase 项目。您不能在多个项目中使用相同的(子)域,因此您被迫隐式实施解决方案 1。
在 Android 上,所需assetlinks.json
文件映射完整域,包括指向 Android 应用程序(或风格)列表的所有路径。特定应用程序是否支持特定链接由您通过在 Android 清单文件中本地路由所需路径来确定。
在 iOS 上,情况正好相反:所需apple-app-site-association
文件确定哪些路径与哪些应用程序匹配。不幸的是,当使用 Firebase 动态链接时,您不负责此文件,Firebase 只是将 URL 的所有路径与 Firebase 项目中包含的所有应用程序进行匹配。在本地,您只能配置Associated Domains Entitlement
iOS 应用程序的 。然而,后者只处理包括所有路径的完整域。
不幸的是,官方文档中没有提到这个限制。然而,它已经被证实,例如这里或这里。如第一个链接中所述,他们曾经计划添加此功能,但看起来他们仍然没有。我会联系支持人员要求更新并要求他们至少向文档添加适当的提示。
PS:我知道这是一个很老的问题,在问的时候情况可能有点不同。尽管如此,今天仍然是一个问题。
小智 0
对于深层链接,您将使用应用程序的包标识符。您的其他目标将具有不同的标识符。使用 Info.plist 中的 UIApplicationShortcutItems 并在相应的 plist 文件中添加深层链接衬衫剪切条目。
归档时间: |
|
查看次数: |
2589 次 |
最近记录: |