aboutsummaryrefslogtreecommitdiff
path: root/iosApp/iosApp/AppDelegate.swift
diff options
context:
space:
mode:
Diffstat (limited to 'iosApp/iosApp/AppDelegate.swift')
-rw-r--r--iosApp/iosApp/AppDelegate.swift59
1 files changed, 59 insertions, 0 deletions
diff --git a/iosApp/iosApp/AppDelegate.swift b/iosApp/iosApp/AppDelegate.swift
new file mode 100644
index 0000000..ebe88df
--- /dev/null
+++ b/iosApp/iosApp/AppDelegate.swift
@@ -0,0 +1,59 @@
+/**
+ * TrackerMap
+ * Copyright (C) 2021-2022 Iván Ávalos <avalos@disroot.org>, Henoch Ojeda <imhenoch@protonmail.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+import Foundation
+import UIKit
+import Firebase
+import FirebaseMessaging
+
+class AppDelegate: NSObject, UIApplicationDelegate {
+ func applicationDidFinishLaunching(_ application: UIApplication) {
+ FirebaseApp.configure()
+ Messaging.messaging().delegate = self
+
+ UNUserNotificationCenter.current().delegate = self
+ let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
+ UNUserNotificationCenter.current().requestAuthorization(options: authOptions) { _, _ in }
+
+ application.registerForRemoteNotifications()
+ }
+
+ func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any]) async -> UIBackgroundFetchResult {
+ print(userInfo)
+ return UIBackgroundFetchResult.newData
+ }
+}
+
+extension AppDelegate: UNUserNotificationCenterDelegate {
+ func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification) async -> UNNotificationPresentationOptions {
+ let userInfo = notification.request.content.userInfo
+ print(userInfo)
+ return [.banner, .badge, .sound]
+ }
+
+ func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse) async {
+ let userInfo = response.notification.request.content.userInfo
+ print(userInfo)
+ }
+}
+
+extension AppDelegate: MessagingDelegate {
+ func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String?) {
+ print ("didReceiveRegistrationToken fcmToken:\(String(describing: fcmToken))")
+ UserDefaults.standard.set(fcmToken, forKey: "fcmtoken")
+ }
+}