aboutsummaryrefslogtreecommitdiff
path: root/iosApp/iosApp/AppDelegate.swift
diff options
context:
space:
mode:
authorIván Ávalos <avalos@disroot.org>2022-02-12 01:20:35 -0600
committerIván Ávalos <avalos@disroot.org>2022-02-12 01:20:35 -0600
commit8098ae108e59d3170f88379d8aa51363036ea5eb (patch)
tree820c176c6bcd7dbe92e658b735cb2bf98317a13a /iosApp/iosApp/AppDelegate.swift
parentaa8dd06acac37244420d5dcb6b83c74153563ae5 (diff)
downloadetbsa-trackermap-mobile-8098ae108e59d3170f88379d8aa51363036ea5eb.tar.gz
etbsa-trackermap-mobile-8098ae108e59d3170f88379d8aa51363036ea5eb.tar.bz2
etbsa-trackermap-mobile-8098ae108e59d3170f88379d8aa51363036ea5eb.zip
WIP: FCM notifications (not working)
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")
+ }
+}