Firebase 动态链接无法从冷启动 - Xcode 11,iOS 13
Posted
技术标签:
【中文标题】Firebase 动态链接无法从冷启动 - Xcode 11,iOS 13【英文标题】:Firebase dynamicLink not working from cold start - Xcode 11, iOS 13 【发布时间】:2020-01-02 18:18:39 【问题描述】:如果您直接从动态链接启动应用(并假设您的应用尚未在后台运行),则不会调用 application:continueUserActivity。
过去,我们曾经依赖于 application:didFinishLaunchingWithOptions,但是从 ios13 和 Xcode 9 开始,这不再适用。现在,当您从 dynamicLink 启动应用程序时,launchOptions 为 nil,因此这不再起作用(此解决方案不再起作用的示例在这里:https://***.com/a/46722785/6553577)
有谁知道如何处理这个问题? (感谢您的回复)
【问题讨论】:
【参考方案1】:感谢马特,并按照他的建议使用场景委托,我能够让它工作。供参考,并帮助朋友们花费数小时,这是我的快速代码:(这是在 iOS v13.3 上测试的,使用 Xcode v11.3 和 Firebase iOS SDK v6.14.0)
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions)
guard let _ = (scene as? UIWindowScene) else return
if let userActivity = connectionOptions.userActivities.first
if let incomingURL = userActivity.webpageURL
_ = DynamicLinks.dynamicLinks().handleUniversalLink(incomingURL) (dynamicLink, error) in
guard error == nil else return
if let dynamicLink = dynamicLink
//your code for handling the dynamic link goes here
【讨论】:
这正是我的问题。你为我节省了很多时间浪费的时间。谢谢你。谢谢你。谢谢@MegaMaziar 非常感谢,我在 Firebase 深层链接和 iOS13 及更高版本中苦苦挣扎,Firebase 页面中没有可用的文档。【参考方案2】:现在一切都发生在场景委托中。使用 scene(_:willConnectTo:options:)
代替在启动时检测 NSUserActivity 或 URL 上下文。
【讨论】:
以上是关于Firebase 动态链接无法从冷启动 - Xcode 11,iOS 13的主要内容,如果未能解决你的问题,请参考以下文章