gpt4 book ai didi

当应用程序通过链接点击打开时,iOS 13 无法处理通用链接点击

转载 作者:行者123 更新时间:2023-11-29 05:15:36 30 4
gpt4 key购买 nike

我正在尝试处理通过通用链接点击打开的应用程序。在 ios 13 以下,它运行良好,但对于 ios 13,它只能在后台运行应用程序。如果应用程序无法在前台或后台运行,则单击链接将打开不调用继续 userActivity 功能的应用程序。我还尝试将其放入场景 delegate willconnect to delegate 中。但还是没有打电话我的代码如下,有什么问题吗?

场景委托(delegate)

func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
guard let _ = (scene as? UIWindowScene) else { return }

if connectionOptions.userActivities.first != nil {
self.scene(scene, continue: userActivity!)
}
}
func scene(_ scene: UIScene, continue userActivity: NSUserActivity) {
continueUserActivity(userActivity: userActivity)
}
func continueUserActivity(userActivity : NSUserActivity){
if userActivity.activityType == NSUserActivityTypeBrowsingWeb {
let url = userActivity.webpageURL!
let dataDict:[String: String] = [AppLinkManager.appLinkExtraKey: url.absoluteString]

NotificationCenter.default.post(name: .didReceiveAppLink, object: nil, userInfo: dataDict)
}
}

应用程序委托(delegate)

  func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
if let userActivityDict = launchOptions?[.userActivityDictionary] as? [AnyHashable : Any],
let userActivity = userActivityDict["UIApplicationLaunchOptionsUserActivityKey"] as? NSUserActivity {
continueUserActivity(userActivity: userActivity)
}
return true
}
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
continueUserActivity(userActivity: userActivity)
return true
}


func continueUserActivity(userActivity : NSUserActivity){
if userActivity.activityType == NSUserActivityTypeBrowsingWeb {
let url = userActivity.webpageURL!
let dataDict:[String: String] = [AppLinkManager.appLinkExtraKey: url.absoluteString]

NotificationCenter.default.post(name: .didReceiveAppLink, object: nil, userInfo: dataDict)
}
}

最佳答案

您是否尝试过在 SceneDelegate 中实现 continue userActivity 函数:

func scene(_ scene: UIScene, continue userActivity: NSUserActivity) { }

我在使用 Firebase DynamicLink 时遇到了同样的问题,看起来 UniversalLinks(可能还有其他几个 API)在 SceneDelegate 上使用了此回调。

因此,如果您的目标是 iOS 13 及更低版本,请尝试同时实现 SceneDelegateAppDelegate

关于当应用程序通过链接点击打开时,iOS 13 无法处理通用链接点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59222344/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com