所以我有一个正在运行的动态链接,当我单击它时它会打开应用程序,但不会处理动态链接。这是因为从未输入下面看到的应用程序功能,我不确定为什么...
func handleIncomingDynamicLink(_ dynamicLink: DynamicLink){
guard let url = dynamicLink.url else {
print("That's weird. My dynamic link object has no url")
return
}
print("Your incoming link parameter is \(url.absoluteString)")
}
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
if let incomingURL = userActivity.webpageURL {
print("Incoming URL is \(incomingURL)")
let linkHandled = DynamicLinks.dynamicLinks().handleUniversalLink(incomingURL) { (dynamicLink, error) in
guard error == nil else{
print("Found an error! \(error!.localizedDescription)")
return
}
if let dynamicLink = dynamicLink {
self.handleIncomingDynamicLink(dynamicLink)
}
}
if linkHandled {
return true
} else {
return false
}
}
return false
}
非常感谢任何帮助——这是否可能是 Firebase 本身的问题?
最佳答案
SwiftUI 2.0/@main 应用 对于新的 SwiftUI 2.0,您可以仅使用 SwiftUI 制作应用程序。这意味着您不使用 AppDelegate 或 SceneDelegate。然后,您必须使用 .onOpenURL 来获取单击链接时调用的任何操作。我将其用于 Firebase 动态链接。
WindowGroup {
ContentView()
.onOpenURL { url in
// handle the URL that must be opened
let incomingURL = url
print("Incoming URL is: \(incomingURL)")
let linkHandled = DynamicLinks.dynamicLinks().handleUniversalLink(incomingURL) { (dynamicLink, error) in
guard error == nil else {
print("Error found!: \(error!.localizedDescription)")
return
}
if let dynamicLink = dynamicLink {
self.handleDynamicLink(dynamicLink)
}
}
if linkHandled{
print("Link Handled")
return
}else{
print("NO linkHandled")
return
}
}
}
关于swift - 动态链接 Firebase 函数根本没有被调用 Xcode 12?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63893945/