Files
nostr-connect/Nostr Connect/Shared (Extension)/SafariWebExtensionHandler.swift
2023-11-27 15:08:42 +07:00

39 lines
1.1 KiB
Swift

//
// SafariWebExtensionHandler.swift
// Shared (Extension)
//
// Created by Phong on 27/11/2023.
//
import SafariServices
import os.log
class SafariWebExtensionHandler: NSObject, NSExtensionRequestHandling {
func beginRequest(with context: NSExtensionContext) {
let request = context.inputItems.first as? NSExtensionItem
let profile: UUID?
if #available(iOS 17.0, macOS 14.0, *) {
profile = request?.userInfo?[SFExtensionProfileKey] as? UUID
} else {
profile = request?.userInfo?["profile"] as? UUID
}
let message: Any?
if #available(iOS 17.0, macOS 14.0, *) {
message = request?.userInfo?[SFExtensionMessageKey]
} else {
message = request?.userInfo?["message"]
}
os_log(.default, "Received message from browser.runtime.sendNativeMessage: %@ (profile: %@)", String(describing: message), profile?.uuidString ?? "none")
let response = NSExtensionItem()
response.userInfo = [ SFExtensionMessageKey: [ "echo": message ] ]
context.completeRequest(returningItems: [ response ], completionHandler: nil)
}
}