Вопросы по расширению Safari
Я нахожусь в процессе создания моего первого расширения Safari - очень простого - но я столкнулся с парой проблем. Расширение сводится к одному внедренному сценарию, который пытается обойти встроенный обработчик каналов и перенаправить на http: // URI. Мои проблемы на данный момент имеют два аспекта:
«Белый список» работает не так, как я ожидал. Так как все каналы отображаются по протоколу «feed: //», я попытался зафиксировать это в белом списке как «feed: // * / *» (в чёрном списке ничего нет), но в итоге получаю запрос цикл, который я не могу понять. Если я установлючерный список значения "Http: // * / *" а также "https: // * / *"все работает как положено.Я не могу понять, как получить доступ к моим настройкам из моего скрипта. Скрипт создаетbeforeload
обработчик событий, но не могу получить доступ к моим настройкам, используяsafari.extension.settings
путь указан в документации.Я не нашел ничего в документации Apple, чтобы указать, что настройки не должны быть доступны из моего скрипта. Поскольку расширения являются такой новой функцией, даже Google возвращает ограниченные релевантные результаты, и большинство из них из официальной документации.
Чего мне не хватает?
Благодарю.
ОБНОВИТЬ Поэтому я надеюсь, что документация неполная, потому что она ужасна, но я немного узнал о настройках. Оказывается, что из сценариев внедренияSafariExtensionSettings
объект недоступен Сценарии инъекций имеют доступ только кSafariContentExtension
объект (который вообще не полезен), но псевдоним точно таким же образом (safari.extension.settings
) - плохая идея, ИМО. Как указано вдокументация по сценарию внедрения:
Важное замечание: Когда вы используете safari.extension из внедренного скрипта, вы не обращаетесь к классу SafariExtension. Вы обращаетесь к классу SafariContentExtension.
Вы должны использовать систему обмена сообщениями для общения с глобальным HTML-файлом, который имеет доступ к настройкам. Это немного странно, но у меня есть сообщение, отправленноеglobal.html
файл, который извлекает настройки и отправит сообщение обратно в мой скрипт инъекции, как только я пойму, как это сделать.
Так как я делаю всю свою работу до загрузки документа, все методы, которые я нашел для отправки сообщенияназад полагаться на объект страницы, которого у меня нет.