John Costa 61e9258538 feat: saveToken plugin for app groups on iOS
This will allow the share extension to access the Bearer token to send
images to the backend.
2025-05-01 18:20:26 +01:00

35 lines
888 B
Swift

import SwiftRs
import Tauri
import UIKit
import WebKit
class SaveTokenArgs: Decodable {
var token: String?
}
let appGroupID = "group.com.haystack.com"
let sharedTokenKey = "sharedAuthToken"
class SharedToken: Plugin {
@objc func saveToken(_ invoke: Invoke) throws {
guard let args = try? invoke.parseArgs(SaveTokenArgs.self), let token = args.token else {
invoke.reject("Missing token argument")
return
}
// Access shared UserDefaults
guard let sharedDefaults = UserDefaults(suiteName: appGroupID) else {
invoke.reject("Could not access shared UserDefaults. Check App Group configuration.")
return
}
sharedDefaults.set(token, forKey: sharedTokenKey)
invoke.resolve()
}
}
@_cdecl("init_plugin_ios_shared_token")
func initPlugin() -> Plugin {
return SharedToken()
}