我致力于我们的iOS应用程序的通用链接实现。
下面是我的一小部分AppDelegate:
private func application(_ application: UIApplication, openURL url: URL, sourceApplication: String?, annotation: AnyObject) -> Bool {
DeepLinkHelpers.handleUniversalLink(url.absoluteString)
return true
}
private func application(application: UIApplication, continueUserActivity userActivity: NSUserActivity, restorationHandler: ([AnyObject]?) -> Void) -> Bool {
DeepLinkHelpers.handleUniversalLink(userActivity.webpageURL?.absoluteString)
return true
}
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
signalRConnector.launch()
NotificationCenter.default.addObserver(self, selector: #selector(AppDelegate.processRestartSignalRNotification(_:)), name: NSNotification.Name(rawValue: "restartSignalR"), object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(AppDelegate.reachabilityChanged(_:)),
name: ReachabilityChangedNotification,
object: reachability)
do {
try reachability.startNotifier()
} catch {
Logger.save(text: "Unable to start notifier")
}
return true
}我已经处理了所有其他步骤,以实现通用链接的集成:
我做了以下调试工作:
根据文档,应该执行continueUserActivity。当应用程序在后台运行时和应用程序没有运行时,它都不执行。
提前谢谢你!任何帮助都很感激。
发布于 2016-12-17 17:20:14
我怀疑这是因为您已经将continueUserActivity函数标记为private。我从未见过这种情况,事实上,Swift 3在我尝试时会出现一个错误。似乎没有任何这样的代码构造的例子-- 在所有的GitHub。
我建议移除private范围。
发布于 2018-10-11 17:26:04
截至iOS 12、SWIFT4.2和Xcode 10,苹果再次将方法签名(restorationHandler类型)更改为
func application(_ application: UIApplication, continue userActivity:
NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {发布于 2022-02-07 13:33:15
在ios 13之后,您应该使用ScenDelegate:
//when app is running
func scene(_ scene: UIScene, continue userActivity: NSUserActivity)
//when app is not running
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions)https://stackoverflow.com/questions/41191472
复制相似问题