【发布时间】:2021-09-24 14:34:56
【问题描述】:
我遇到了通知和深层链接无法解决的问题。
当打开一个深度链接时,UIApplication 用于发送带有 userInfo 的 UIApplication.didFinishLaunchingNotification,其中包含带有打开的 URL 的 UIApplicationLaunchOptionsURLKey。
所以我们可以这样订阅它:
NotificationCenter.default.addObserver(forName: UIApplication.didFinishLaunchingNotification, object: nil, queue: nil) { (notification) in
print(notification.userInfo) // prints UIApplicationLaunchOptionsURLKey: url_that_opened_the_app
}
现在,在 iOS 13 之后不会发生这种情况:userInfo 是 nil。
所以问题是:有没有办法在应用打开深层链接时从通知中心接收通知?
*想法:*
我认为这是因为UISceneDelegate 现在负责打开深度链接,这可以通过以下事实得到证实:如果我们删除 SceneDelegate,我们可以取回我们的 userInfo。
我试图查找是否有任何 SceneDelegate 通知向我们提供此类信息,但它们没有:didActivateNotification 和 willConnectNotification 都没有提供任何信息。
【问题讨论】:
-
检查我的答案一次..
标签: ios iphone deep-linking nsnotificationcenter nsnotifications