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.
This commit is contained in:
2025-05-01 18:20:26 +01:00
parent c8d9ae7aff
commit 61e9258538
32 changed files with 857 additions and 1 deletions

View File

@@ -0,0 +1,34 @@
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()
}