В настоящее время я реализую расширение приложения Safari, которое я хочу иметь возможность показывать всплывающее окно расширения с помощью сочетания клавиш.
Используя старый API расширения Safari, это было сделано с помощью
safari.extension.toolbarItem[0].showPopover()
во вставленном JavaScript.Это, однако, больше невозможно в новом API расширения приложений Safari.
В настоящее время я слушаю ярлык введенного JavaScript и отправляю сообщение на расширение:
document.onkeyup = function(e) {
if (e.shiftKey && e.altKey && e.which == 80) {
safari.extension.dispatchMessage("showPopover");
}
};
В расширении у меня есть прослушиватель сообщений, который должен загрузить поповер:
override func messageReceived(withName messageName: String, from page:
SFSafariPage, userInfo: [String : Any]? = nil) {
page.getPropertiesWithCompletionHandler { properties in
if messageName == "showPopover" {
// Here the popover should be loaded...
}
}
}
Не могу понять, как это сделать.Документация Apple не предоставляет никакой информации.Stackoverflow и Github также не помогли.Однако я нашел следующие два вопроса о Stackoverflow, которые, похоже, пытаются сделать то же самое, но безуспешно: [1] , [2]
Любая помощь по этому вопросу?Разве это просто невозможно?Или я что-то упустил?
Спасибо за помощь.