Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import UIKit
- import Firebase
- import UserNotifications
- @UIApplicationMain
- class AppDelegate: UIResponder, UIApplicationDelegate {
- var window: UIWindow?
- func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
- // Register for push notification
- self.registerForNotification()
- FirebaseApp.configure()
- Messaging.messaging().delegate = self
- return true
- }
- }
- extension AppDelegate: UNUserNotificationCenterDelegate {
- //MARK: - Register For RemoteNotification
- func registerForNotification() {
- UNUserNotificationCenter.current().delegate = self
- UNUserNotificationCenter.current().requestAuthorization(options: [.badge, .alert, .sound]) { granted, error in }
- UIApplication.shared.registerForRemoteNotifications()
- }
- func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
- #if DEVELOPMENT
- Messaging.messaging().setAPNSToken(deviceToken, type: .sandbox)
- #else
- Messaging.messaging().setAPNSToken(deviceToken, type: .prod)
- #endif
- }
- func application(_ application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: Error) {
- debugPrint("Unable to register for remote notifications: (error.localizedDescription)")
- }
- //MARK: - UNUserNotificationCenterDelegate
- func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any]) {
- debugPrint(userInfo)
- }
- func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
- let userInfo = notification.request.content.userInfo
- debugPrint(userInfo)
- completionHandler([.badge, .alert, .sound])
- }
- func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
- let userInfo = response.notification.request.content.userInfo
- print(userInfo)
- completionHandler()
- }
- }
- extension AppDelegate: MessagingDelegate {
- //MARK: - MessagingDelegate
- func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String) {
- print(fcmToken)
- }
- func messaging(_ messaging: Messaging, didReceive remoteMessage: MessagingRemoteMessage) {
- print(remoteMessage.appData)
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement