mirror of
https://github.com/nkcmr/HyperTab.git
synced 2026-03-30 14:21:48 +02:00
39 lines
1.2 KiB
Swift
39 lines
1.2 KiB
Swift
//
|
|
// SafariWebExtensionHandler.swift
|
|
// Shared (Extension)
|
|
//
|
|
// Created by Nicholas Comer on 11/18/23.
|
|
//
|
|
|
|
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)
|
|
}
|
|
|
|
}
|