完全按照描述实现每一种步骤。应用程序打开成功,但未获取 URL 数据。
完全按照描述实现每一种步骤。从 Gmail 发送链接,链接会打开应用程序,所以是的,它可以工作。 但这里有两个问题
1-我到底如何调试和打印应用程序,因为您必须关闭应用程序并断开应用程序和 Xcode 调试器之间的连接才能从通用链接重新打开应用程序!令人沮丧的是,如果我让应用程序在调试器后台运行,通用链接只会将应用程序状态重新激活到前台,但随后该功能 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: ....
未调用
2-无论如何我总是得到“userActivity?.activityType”= nil。
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
if userActivity?.activityType == NSUserActivityTypeBrowsingWeb {
let univrsalLinkURL = userActivity?.webpageURL!.absoluteString
// remoteParmNumTxt = univrsalLinkURL!
print(univrsalLinkURL!)
}
return true
}
应该能够捕获url和url数据 iOS 12.4 Xcode 10.3
最佳答案
经过多次尝试让应用程序运行并获取网址数据 iOS 中似乎发生了一些变化,其中“userActivity”将始终为零,除非您从“application”函数的重载中获取它
所以@Simon McLoughlin 解决方案通过建议使用此函数确实解决了一半的问题
func application(_ application: UIApplication,
continue userActivity: NSUserActivity,
restorationHandler: @escaping ([Any]?) -> Void) -> Bool
但是“仅”当应用程序已在后台运行时,才会触发此重载。
好吧,如果应用程序在未运行时通过通用链接打开,那么对我来说,让应用程序获取网址数据的唯一解决方案如下
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
let activityDictionary = launchOptions?[UIApplication.LaunchOptionsKey.userActivityDictionary] as? [AnyHashable: Any] ?? [AnyHashable: Any]()
let activity = activityDictionary ["UIApplicationLaunchOptionsUserActivityKey"] as? NSUserActivity ?? nil
if let finalString = activity?.webpageURL?.absoluteString {
remoteParmNumTxt = finalString
}
print("dic",activity?.webpageURL)
print("yesssss loaded from url")
return true
}
如果您尝试直接使用“userActivity”,无论如何它都会给您零值
所以,苹果文档很糟糕
关于ios - 通用链接打开应用程序但不获取网址数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57824449/