48 lines
1.5 KiB
Swift
48 lines
1.5 KiB
Swift
import UIKit
|
|
import UserNotifications
|
|
|
|
class AppDelegate: NSObject, UIApplicationDelegate {
|
|
func application(
|
|
_ application: UIApplication,
|
|
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil
|
|
) -> Bool {
|
|
// Request notification permissions
|
|
requestNotificationPermissions()
|
|
|
|
// Register background tasks
|
|
registerBackgroundTasks()
|
|
|
|
return true
|
|
}
|
|
|
|
private func requestNotificationPermissions() {
|
|
let center = UNUserNotificationCenter.current()
|
|
center.requestAuthorization(options: [.alert, .badge, .sound]) { granted, error in
|
|
if let error = error {
|
|
print("Notification permission error: \(error)")
|
|
}
|
|
print("Notification permission granted: \(granted)")
|
|
}
|
|
}
|
|
|
|
private func registerBackgroundTasks() {
|
|
// Background fetch for updating widget data and notification badges
|
|
UIApplication.shared.setMinimumBackgroundFetchInterval(UIApplication.backgroundFetchIntervalMinimum)
|
|
}
|
|
|
|
func application(
|
|
_ application: UIApplication,
|
|
didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data
|
|
) {
|
|
let token = deviceToken.map { String(format: "%02.2hhx", $0) }.joined()
|
|
print("Device token: \(token)")
|
|
}
|
|
|
|
func application(
|
|
_ application: UIApplication,
|
|
didFailToRegisterForRemoteNotificationsWithError error: Error
|
|
) {
|
|
print("Failed to register for remote notifications: \(error)")
|
|
}
|
|
}
|