gpt4 book ai didi

ios - 如果用户未打开通知,如何获取位于 AppDelegate' didFinishLunchingWithOptions 的通知附加数据(payloadData)

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

我目前正在使用 OneSignal 为我的应用提供通知服务。我真的需要帮助才能从 AppDelegate附加数据(有效负载数据) > 在 didFinishLunchingWithOption 中,OneSignal API 可以像这样给我。

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

var window: UIWindow?
var data : [NSObject : AnyObject]!

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
let oneSignal = OneSignal(launchOptions: launchOptions, appId: "48755d3d-abc0-4bac-8f71-095729bb3a65") { (message, additionalData, isActive) in
NSLog("OneSignal Notification opened:\nMessage: %@", message)

if additionalData != nil {
NSLog("additionalData: %@", additionalData)
self.data = additionalData
print(self.data)
}
}
oneSignal.enableInAppAlertNotification(true)
return true
}
}

但是,如果用户在通知出现时单击通知或从通知中心打开它,我只能获取数据。因此,如果用户忽略该通知而在出现时没有点击或没有从通知中心滑动或点击,我如何获得额外的数据?

实际上,我想在每次进入我的设备时将所有有效负载数据存储在领域数据库中,并根据该有效负载数据从我的服务器获取数据。

最佳答案

你应该使用application(_:didReceiveRemoteNotification:fetchCompletionHandler:)

如果您启用了远程通知后台模式,即使应用程序未在前台运行,您的大部分通知也会发送。唯一需要注意的是,该应用程序必须已经启动(因为推送通知是用户已经启动的)并且它不能被用户强行退出。

更多信息请参见 Apple's docs关于那个具体的方法。或者在 "Local and Remote Notification Programming Guide's"通知处理章节

关于ios - 如果用户未打开通知,如何获取位于 AppDelegate' didFinishLunchingWithOptions 的通知附加数据(payloadData),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33991110/

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