Как получить userInfo JSON значение внутри didReceiveRemoteNotification в swift4? - PullRequest
0 голосов
/ 09 января 2020

Как получить userInfo JSON Значение внутри didReceiveRemoteNotification в swift? json написано ниже, мне это нужно в моем методе didReceiveRemoteNotification. Любые указатели, как это сделать, ценится

              ["aps": {
  alert = "Manohar Nikam liked your review";
  "content-available" = 1;
  sound =
  default;
 }, "u": {
  "receiver_id": 3,
  "type": "like",
  "review_id": 177,
  "sender_id": 23,
  "like_count": 1,
  "helpful_count": 0,
  "profile_pic": "https://ace-dev-2019.s3.ap-south-1.amazonaws.com/profile/RemoteConfigImageIOS.png",
  "restaurant_id": 4,
  "restaurant_thumbnail": "https://ace-dev-2019.s3.ap-south-1.amazonaws.com/restaurant_images/ThePeshwaPavilionITCMaratha_thumbnail.png",
  "title": "Manohar Nikam liked your review"
 }]

Ответы [ 2 ]

1 голос
/ 09 января 2020

Просто внедрите метод application(_: didReceiveRemoteNotification:) в AppDelegate и используйте userInfo для извлечения aps и других данных из него.

func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any]) {
    if let aps = userInfo["aps"] as? [String:Any] {
        //use aps dictionary here...
    }
    if let u = userInfo["u"] as? [String:Any] {
        //use u dictionary here...
    }
}
0 голосов
/ 09 января 2020

Элементом уровня root в словаре userInfo является «aps», а не «alert».

Попробуйте выполнить следующее:

if let aps = userInfo["aps"] as? NSDictionary {
    if let alert = aps["alert"] as? NSDictionary {
        if let message = alert["message"] as? NSString {
           //Do stuff
        }
    } else if let alert = aps["alert"] as? NSString {
        //Do stuff
    }
}

См. Pu sh Уведомительная документация

...