mirror of
https://github.com/linkwarden/browser-extension.git
synced 2026-06-23 04:10:26 +00:00
43 lines
1.3 KiB
Swift
43 lines
1.3 KiB
Swift
//
|
|
// SafariWebExtensionHandler.swift
|
|
// Linkwarden Extension
|
|
//
|
|
// Created by Daniel on 2026-04-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 15.0, macOS 11.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()
|
|
if #available(iOS 15.0, macOS 11.0, *) {
|
|
response.userInfo = [ SFExtensionMessageKey: [ "echo": message ] ]
|
|
} else {
|
|
response.userInfo = [ "message": [ "echo": message ] ]
|
|
}
|
|
|
|
context.completeRequest(returningItems: [ response ], completionHandler: nil)
|
|
}
|
|
|
|
}
|