在委托方法中无法检测到 IOS 通用链接
Posted
技术标签:
【中文标题】在委托方法中无法检测到 IOS 通用链接【英文标题】:IOS Universal Link can not be detected in delegate method 【发布时间】:2020-11-02 14:47:48 【问题描述】:我目前正在我的应用上测试通用链接。我已上传 apple-app-site-association,编辑我的应用程序的权利文件。当我单击 Note 中的链接(例如:domain.com/test/id12345)时,可以打开该应用程序。
但是,它只打开应用程序,而是从应用程序本身打开。不调用获取信息的委托方法。
项目为ios 13 SwiftUI项目,生命周期为UIKit App Delegate。
在 AppDelegate.swift 下:
func application(_ application: UIApplication,
continue userActivity: NSUserActivity,
restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool
print("Test: this is never called:\(userActivity)")
guard userActivity.activityType == NSUserActivityTypeBrowsingWeb,
let url = userActivity.webpageURL,
let components = URLComponents(url: url, resolvingAgainstBaseURL: true) else
return false
return false
有人知道如何检测被点击的通用链接吗?我应该如何调试它,链接确实打开了应用程序,但我无法处理其余的。
【问题讨论】:
这是否回答了您的问题***.com/a/63940149/12299030? 【参考方案1】:如果您的应用程序支持多窗口或者您没有销毁 SceneDelegate,则需要在 SceneDelegate 中实现此方法
// SceneDelegate.swift
func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>)
_ = LoginManager.shared.application(.shared, open: URLContexts.first?.url)
【讨论】:
以上是关于在委托方法中无法检测到 IOS 通用链接的主要内容,如果未能解决你的问题,请参考以下文章