Files
blinds_flutter/ios/Runner/AppDelegate.swift
2026-03-21 13:27:11 -05:00

33 lines
1.3 KiB
Swift

import Flutter
import Firebase
import FirebaseMessaging
import UIKit
@main
@objc class AppDelegate: FlutterAppDelegate, FlutterImplicitEngineDelegate {
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
// 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()
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
func didInitializeImplicitFlutterEngine(_ engineBridge: FlutterImplicitEngineBridge) {
GeneratedPluginRegistrant.register(with: engineBridge.pluginRegistry)
}
// 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)
}
}