Совсем недавно в мероприятии ввода-вывода Google Google обновила Firebase и добавила много новых функций и затронула оставшиеся. Я пытаюсь внедрить iOS Push Notifications через Firebase в мое приложение на самом базовом уровне. Поэтому я создал очень простое приложение, которое ничего не делает, кроме того, что вы получаете удаленные push-уведомления.
Внутри Firebase я загрузил свой сертификат, и в Xcode мои профили подготовки были добавлены как к цели, так и к проекту, а в Firebase я загрузил правильный сертификат. Ниже приведен код, содержащийся внутри моего файла AppDelegate.swift
но поскольку мой ViewController.swift
"пуст", я не включил его.
Несмотря на отсутствие сбоев или ошибок во время выполнения, при загрузке приложения я принимаю уведомления. Затем я выхожу из приложения и выключу свое устройство. В Firebase я отправляю уведомление в правильное приложение. Через пару минут в Firebase говорится, что уведомление было "Завершено".
Однако я никогда не получал уведомления на устройстве. Итак, в заключение, мне нужно решение для отправки Firebase this deviceToken
а затем использовать "Уведомления Firebase" для отправки push-уведомления.
Любая помощь для моего кода или в целом была бы весьма признательна, и я надеюсь, что это поможет будущим зрителям. Спасибо! Мой код в AppDelegate.swift
:
import UIKit
import Firebase
import FirebaseMessaging
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
FIRApp.configure()
let notificationTypes : UIUserNotificationType = [UIUserNotificationType.Alert, UIUserNotificationType.Badge, UIUserNotificationType.Sound]
let notificationSettings = UIUserNotificationSettings(forTypes: notificationTypes, categories: nil)
application.registerForRemoteNotifications()
application.registerUserNotificationSettings(notificationSettings)
return true
}
func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {
print("Device Token: \(deviceToken)")
}
func applicationWillResignActive(application: UIApplication) {
}
func applicationDidEnterBackground(application: UIApplication) {
}
func applicationWillEnterForeground(application: UIApplication) {
}
func applicationDidBecomeActive(application: UIApplication) {
}
func applicationWillTerminate(application: UIApplication) {
}
func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject], fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) {
print("MessageID : \(userInfo["gcm.messgae_id"]!)") // or gcm_etc...
print(userInfo)
}
}