gpt4 book ai didi

ios - ios 13 中未调用 application(...continue userActivity...) 方法

转载 作者:行者123 更新时间:2023-12-04 04:09:05 24 4
gpt4 key购买 nike

嗨,我正在使用 UniversalLink 制作 ios 应用程序。

通用链接工作正常,但 callback method不叫。

我的 AppDelegate.swift 在下面。

import UIKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

var window: UIWindow?


func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
return true
}


func application(_ application: UIApplication,
willFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
return true
}

// this method not called!!
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
print("called")
return true
}
}

该方法在 iOS 12 模拟器中调用。

因此,该问题仅在 iOS 13 中出现。

仅在 iOS13 中,此错误会在控制台中打印。

Can't end BackgroundTask: no background task exists with identifier 1 (0x1), or it may have already been ended. Break in UIApplicationEndBackgroundTaskError() to debug.



所以,这可能是问题的原因。

我真的很感谢有人帮助

最佳答案

我遇到了与 SceneDelegate 类似的问题和通用链接,当应用程序刚刚启动时我无法访问 NSUserActivity(在本例中为 iOS 13 中的背景 NFC 读取)。

正如@Jan 的回答中提到的,继续 userActivity 现在位于 SceneDelegate .

如果应用程序正在运行或在后台运行,即。关闭,通用链接将触发 scene(_:continue:)代表。

如果应用程序不在后台,则不会从 scene(_:continue:) 启动通用链接代表。相反,NSUserActivity可从 scene(_:willConnectTo:options:) 获得.
例如。

func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
if let userActivity = connectionOptions.userActivities.first {
debugPrint("got user activity")
}
}

关于ios - ios 13 中未调用 application(...continue userActivity...) 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58214733/

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