Files
blinds_flutter/ios/Runner/AppDelegate.swift

33 lines
1.3 KiB
Swift
Raw Permalink Normal View History

2025-07-10 18:52:04 -05:00
import Flutter
2026-03-21 13:27:11 -05:00
import Firebase
import FirebaseMessaging
2025-07-10 18:52:04 -05:00
import UIKit
@main
@objc class AppDelegate: FlutterAppDelegate, FlutterImplicitEngineDelegate {
2025-07-10 18:52:04 -05:00
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
2026-03-21 13:27:11 -05:00
// Explicitly register for remote notifications on every launch so iOS always
// calls didRegisterForRemoteNotificationsWithDeviceToken, ensuring Firebase
// receives a fresh APNs token regardless of whether permission was already granted.
application.registerForRemoteNotifications()
2025-07-10 18:52:04 -05:00
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
func didInitializeImplicitFlutterEngine(_ engineBridge: FlutterImplicitEngineBridge) {
GeneratedPluginRegistrant.register(with: engineBridge.pluginRegistry)
}
2026-03-21 13:27:11 -05:00
// FlutterImplicitEngineDelegate can interfere with Firebase's method swizzling,
// preventing it from capturing the APNs token. Forward it explicitly instead.
override func application(
_ application: UIApplication,
didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data
) {
Messaging.messaging().apnsToken = deviceToken
super.application(application, didRegisterForRemoteNotificationsWithDeviceToken: deviceToken)
}
2025-07-10 18:52:04 -05:00
}