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:
34
tauri-plugin-ios-shared-token/ios/Sources/SharedToken.swift
Normal file
34
tauri-plugin-ios-shared-token/ios/Sources/SharedToken.swift
Normal 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()
|
||||
}
|
||||
Reference in New Issue
Block a user