Как получать уведомления о данных в Swift (FCM) - PullRequest
0 голосов
/ 07 ноября 2019

Мне нужно быстро получать уведомления о данных и не использовать сообщение об уведомлении. Используйте только Data message.

это мой Json для почтальона

{

"to": "e32uafd....",

    "data": {
        "urlImage": "https://upload.wikimedia.org/wikipedia/commons/8/80/image.jpg",
        "title": "title",
        "body": "****body****.",
        "mutable_content": true
    }
}

это мой код в swift

@available(iOS 10.0, *)
    func userNotificationCenter(_ center: UNUserNotificationCenter,  willPresent notification: UNNotification, withCompletionHandler   completionHandler: @escaping (_ options:   UNNotificationPresentationOptions) -> Void)
    {
                switch UIApplication.shared.applicationState
                    {
                    case .active:
                        completionHandler( [.alert,.sound])
                        break
                    default:
                        completionHandler( [.alert,.sound])
                        break
                          }
                             }
        }   
  }

1 Ответ

0 голосов
/ 07 ноября 2019

Вы можете получить данные уведомлений, используя func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void), но прежде чем вы сможете это сделать, вы должны сделать свой ViewController делегатом UNUserNotificationCenter при регистрации для уведомлений или в методе didFinishLaunchWithOptions(:).

Шаг 1 Сделайте ваш AppDelegate делегатом UNNotificationCenter

 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

     // Assumming you have imported NotificationCenter
     UNUserNotificationCenter.current().delegate = self
    //......

        return true
    }


Шаг 2 Получите вашу информацию

func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {

     print(userInfo) // Your notification info
    // Note that you have to cast/parse it depending on which data you want to handle. 


    }

...