我正在尋找如何處理推送通知有效負載數據的方式,只要通知到達客戶端應用程序而不打開或點擊它。而且我仍然不會獲取數據,除非用戶點擊或只有當用戶點擊屏幕上的通知時纔會觸發功能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)數據。 –
我認爲你不打開通知屏幕時,應用程序關閉我的權利 ? –