我正在寻找如何处理推送通知有效负载数据的方式,只要通知到达客户端应用程序而不打开或点击它。而且我仍然不会获取数据,除非用户点击或只有当用户点击屏幕上的通知时才会触发功能didReceiveRemoteNotification。所以,当通知到达客户端应用程序时,如何获取通知有效载荷数据,即使用户忽略(没有打开或点击)它。处理推送通知有效负载数据
信息:我听说GCM(Google Cloud Messaging)可以在客户端应用程序用户点击通知或不通知的情况下生成通知处理程序。它可以在不需要时即刻捕获通知有效载荷json数据用户点击或打开它。是吗?
我真的需要一个人来接我,通知ios的有效载荷数据,甚至不需要用户打开或点击它。
更新:该应用程序仍在设备上运行,这意味着它是active.I可以得到有效载荷数据,当我点击我的通知是“{APS:} JSON我得到它。但是,我仍然无法得到当我不打开通知”
数据这是我的状态
当应用程序在前台,我得到的数据。 1.I运行应用程序,
2.发送通知,
3.Get与警报通知,
4,我得到的数据(有效载荷)。
当应用程序处于活动状态时正常工作。
但是,当应用程序达到背景
1.Run的应用程序,
2.Close应用程序按home键,
3.Send通知,
4 。获取通知。
5.但是,无法获取数据,直到我点击通知我在横幅 或通知中心收到通知。
但是,当我点击通知横幅或通知它去应用程序,然后我得到的数据。
是否有无论如何,我可以得到的数据,如果应用程序在后台收到通知时。
下面是代码:
import UIKit
import RealmSwift
let realm = try! Realm()
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
var data : [NSObject : AnyObject]!
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
//one singnal is the push notification service that i use for push notification.
let oneSignal = OneSignal(launchOptions: launchOptions, appId: "__app_id__") { (message, additionalData, isActive) in
NSLog("OneSignal Notification opened:\nMessage: %@", message)
if additionalData != nil {
NSLog("additionalData: %@", additionalData)
}
}
oneSignal.enableInAppAlertNotification(true)
return true
}
func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject], fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) {
print("User Info : \(userInfo)")
if let custom = userInfo["custom"] as? NSDictionary{
if let a = custom["a"] as? NSDictionary{
print("A : \(a)")
}
}
}
就得到这种方法didReceiveRemoteNotification通知数据? –
@Maulik当用户点击(打开)它,是的...我得到有效载荷(json)数据。 –
我认为你不打开通知屏幕时,应用程序关闭我的权利 ? –