gpt4 book ai didi

ios - 检测应用程序是否从 Background Swift iOS 打开

转载 作者:可可西里 更新时间:2023-11-01 01:24:39 24 4
gpt4 key购买 nike

我需要知道我的应用程序是通过与推送通知交互还是通过用户点击应用程序手动进入前台。

如果您从后台手动打开一个应用,“applicationWillEnterForeground”会被调用。 如果您通过推送通知从后台打开应用程序,将调用“applicationWillEnterForeground”,然后调用“didReceiveRemoteNotification”

现在我想在应用程序委托(delegate)内部向我的后端发出一个 alamofire 请求,只要我确定它是由于推送而打开的(统计数据,用户是否与我们的推送消息进行交互)。

是否有一种方法可以在我列出的所有方法之后调用?如果是这样,我可以在那个地方检查它是否是推送并将其发送出去。或者有更好的方法来解决这个问题吗?

最佳答案

当应用处于后台时,您可以通过"didReceiveRemoteNotification"处理通知。

如果它根本没有运行并且用户通过单击通知横幅启动它,则必须检查启动选项:

    if let launchOptions = launchOptions {
if let notificationInfo = launchOptions[UIApplicationLaunchOptionsKey.remoteNotification] as? [AnyHashable : Any] {
// Handle notificationInfo
}
}

在 AppDelegate 中的 "application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?)" 方法中。

关于ios - 检测应用程序是否从 Background Swift iOS 打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42069785/

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