48 lines
1.6 KiB
Swift
48 lines
1.6 KiB
Swift
import Flutter
|
|
import UIKit
|
|
import FirebaseCore
|
|
import FirebaseMessaging
|
|
|
|
@main
|
|
@objc class AppDelegate: FlutterAppDelegate, FlutterImplicitEngineDelegate {
|
|
override func application(
|
|
_ application: UIApplication,
|
|
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
|
|
) -> Bool {
|
|
FirebaseApp.configure()
|
|
|
|
// Request notification permissions
|
|
UNUserNotificationCenter.current().delegate = self
|
|
let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
|
|
UNUserNotificationCenter.current().requestAuthorization(options: authOptions) { _, _ in }
|
|
application.registerForRemoteNotifications()
|
|
|
|
Messaging.messaging().delegate = self
|
|
|
|
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
|
|
}
|
|
|
|
func didInitializeImplicitFlutterEngine(_ engineBridge: FlutterImplicitEngineBridge) {
|
|
GeneratedPluginRegistrant.register(with: engineBridge.pluginRegistry)
|
|
}
|
|
|
|
override func application(
|
|
_ application: UIApplication,
|
|
didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data
|
|
) {
|
|
Messaging.messaging().apnsToken = deviceToken
|
|
super.application(application, didRegisterForRemoteNotificationsWithDeviceToken: deviceToken)
|
|
}
|
|
}
|
|
|
|
extension AppDelegate: MessagingDelegate {
|
|
func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String?) {
|
|
let dataDict: [String: String] = ["token": fcmToken ?? ""]
|
|
NotificationCenter.default.post(
|
|
name: Notification.Name("FCMToken"),
|
|
object: nil,
|
|
userInfo: dataDict
|
|
)
|
|
}
|
|
}
|