mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-20 05:16:07 +00:00
98 lines
4.1 KiB
Swift
98 lines
4.1 KiB
Swift
import UIKit
|
|
import Capacitor
|
|
import SendIntent
|
|
import FirebaseCore
|
|
import Firebase
|
|
|
|
@UIApplicationMain
|
|
class AppDelegate: UIResponder, UIApplicationDelegate {
|
|
|
|
var window: UIWindow?
|
|
let store = ShareStore.store
|
|
|
|
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
|
|
// Override point for customization after application launch.
|
|
FirebaseApp.configure()
|
|
|
|
return true
|
|
}
|
|
|
|
|
|
|
|
func applicationWillResignActive(_ application: UIApplication) {
|
|
// Sent when the application is about to move from active to inactive state.
|
|
// This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message)
|
|
// or when the user quits the application and it begins the transition to the background state.
|
|
// Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks.
|
|
// Games should use this method to pause the game.
|
|
}
|
|
|
|
func applicationDidEnterBackground(_ application: UIApplication) {
|
|
// Use this method to release shared resources, save user data, invalidate timers,
|
|
// and store enough application state information to restore your application to its current state
|
|
// in case it is terminated later. If your application supports background execution,
|
|
// this method is called instead of applicationWillTerminate: when the user quits.
|
|
}
|
|
|
|
func applicationWillEnterForeground(_ application: UIApplication) {
|
|
// Called as part of the transition from the background to the active state;
|
|
// here you can undo many of the changes made on entering the background.
|
|
}
|
|
|
|
func applicationDidBecomeActive(_ application: UIApplication) {
|
|
// Restart any tasks that were paused (or not yet started) while the application was inactive.
|
|
// If the application was previously in the background, optionally refresh the user interface.
|
|
}
|
|
|
|
func applicationWillTerminate(_ application: UIApplication) {
|
|
// Called when the application is about to terminate.
|
|
// Save data if appropriate. See also applicationDidEnterBackground:.
|
|
}
|
|
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
|
|
NotificationCenter.default.post(name: .capacitorDidRegisterForRemoteNotifications, object: deviceToken)
|
|
|
|
Messaging.messaging().apnsToken = deviceToken
|
|
}
|
|
|
|
func application(_ application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: Error) {
|
|
NotificationCenter.default.post(name: .capacitorDidFailToRegisterForRemoteNotifications, object: error)
|
|
}
|
|
|
|
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
|
|
var success = true
|
|
|
|
if CAPBridge.handleOpenUrl(url, options) {
|
|
success = ApplicationDelegateProxy.shared.application(app, open: url, options: options)
|
|
}
|
|
|
|
guard let components = NSURLComponents(url: url, resolvingAgainstBaseURL: true),
|
|
let params = components.queryItems else {
|
|
return false
|
|
}
|
|
|
|
let titles = params.filter { $0.name == "title" }
|
|
let descriptions = params.filter { $0.name == "description" }
|
|
let types = params.filter { $0.name == "type" }
|
|
let urls = params.filter { $0.name == "url" }
|
|
|
|
store.shareItems.removeAll()
|
|
|
|
if titles.count > 0 {
|
|
for index in 0...titles.count-1 {
|
|
var shareItem: JSObject = JSObject()
|
|
shareItem["title"] = titles[index].value!
|
|
shareItem["description"] = descriptions[index].value!
|
|
shareItem["type"] = types[index].value!
|
|
shareItem["url"] = urls[index].value!
|
|
store.shareItems.append(shareItem)
|
|
}
|
|
}
|
|
|
|
store.processed = false
|
|
let nc = NotificationCenter.default
|
|
nc.post(name: Notification.Name("triggerSendIntent"), object: nil )
|
|
|
|
return success
|
|
}
|
|
}
|