在我的应用程序中,我需要访问推送通知有效负载而无需用户交互,即使应用已关闭。我在launchOptions?[UIApplicationLaunchOptionsKey.remoteNotification]
方法中使用了didFinishLaunchingWithOptions
。但问题是当通知到来时,有时候launchOptions?[UIApplicationLaunchOptionsKey.remoteNotification]
包含有效载荷或有时没有。为什么?
didFinishLaunchingWithOptions
中的代码如下:
if launchOptions?[UIApplicationLaunchOptionsKey.remoteNotification] != nil
{
UserDefaults.standard.set(launchOptions?[UIApplicationLaunchOptionsKey.remoteNotification], forKey: "NotificationDetails")
UserDefaults.standard.synchronize()
handlePushNotificationUserInfo(userInfo: launchOptions?[UIApplicationLaunchOptionsKey.remoteNotification] as! [AnyHashable : Any])
}
在上面的代码中,有时我会在UserDefaults
或有时没有获得通知有效负载。
答案 0 :(得分:0)
只有在用户点按通知时您才会收到。我把我以下用于通知,我没有得到任何问题。你可以查看我的代码。
if let launchOptions = launchOptions {
if let info = launchOptions[UIApplicationLaunchOptionsKey.remoteNotification] {
let dic = info as! NSDictionary
}
}