概要
- SwiftUIでもUIKit時代のアプリのライフサイクルを決めておきたいなと思う
- 当たり前のことだけどメモ
ソースコード
-
やり方は簡単。まず、AppDelegate.swiftを作成。
-
以下のように、AppDelegateクラスを継承する(今回は通知の許可リクエストをアプリ起動時にやってほしいことを想定)。
AppDelegate.swiftimport UIKit class AppDelegate: NSObject, UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool { // 通知の許可リク let center = UNUserNotificationCenter.current() center.requestAuthorization(options: [.alert, .sound, .badge]) { granted, error in if granted { print("通知が許可されたよ") } else { print("通知が拒否されたよ") } } return true } }
-
デフォルトで作られるAppの構造体に以下のように
@UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate
を定義する。SampleApp.swiftimport SwiftUI @main struct SampleApp: App { + @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate var body: some Scene { WindowGroup { ContentView() .environmentObject(LocationManager()) } } }
-
以上。無事アプリが開いた時に通知許可云々のダイアログが出た。