Spec-Zone.ru › Hammerspoon

hs.webview.usercontent

Этот модуль предоставляет поддержку вставки пользовательского JavaScript-контента в ваши веб-вью и для JavaScript, чтобы отправлять сообщения обратно в Hammerspoon.

Обзор API

  • Конструкторы - вызовы API, возвращающие объект, обычно предоставляющий методы API
    • new
  • Методы - вызовы API, которые могут быть выполнены только на объекте, возвращенном конструктором
    • injectScript
    • removeAllScripts
    • setCallback
    • userScripts

Документация API

Конструкторы

new
Подпись hs.webview.usercontent.new(name) -> usercontentControllerObject
Тип Конструктор
Описание

Создает новый контроллер пользовательского контента для веб-вью и создает порт сообщений с указанным именем для поддержки сообщений JavaScript.

Параметры
  • name - имя порта сообщений, которое JavaScript в веб-вью может использовать для отправки сообщений в Hammerspoon.
Возвращаемое значение
  • объект usercontentControllerObject
Примечания
  • Этот объект должен быть предоставлен в качестве последнего аргумента конструктору hs.webview.new, чтобы связать веб-вью с этим контроллером контента. Все новые окна, созданные из этого родительского веб-вью, также будут использовать этот контроллер.
  • См. hs.webview.usercontent:setCallback, чтобы узнать больше о портах сообщений.
Источник extensions/webview/libwebview_usercontent.m строка 34

Методы

injectScript
Подпись hs.webview.usercontent:injectScript(scriptTable) -> usercontentControllerObject
Тип Метод
Описание

Добавляет скрипт, который необходимо вставить в веб-вью, использующие этот контроллер пользовательского контента.

Параметры
  • scriptTable - таблица, содержащая следующие ключи, которые определяют скрипт и способ его вставки:
    • source - вставляемый JavaScript (обязательно)
    • mainFrame - логическое значение, указывающее, вставляется ли этот скрипт только для основного кадра веб-вью (true) или для всех кадров внутри веб-вью (false). По умолчанию true.
    • injectionTime - строка, указывающая, вставляется ли скрипт в "documentStart" или "documentEnd". По умолчанию "documentStart".
Возвращаемое значение
  • объект usercontentControllerObject или nil, если таблица скриптов была некорректно сформирована.
Источник extensions/webview/libwebview_usercontent.m строка 59
removeAllScripts
Подпись hs.webview.usercontent:removeAllScripts() -> usercontentControllerObject
Тип Метод
Описание

Удаляет все пользовательские скрипты, определенные для этого контроллера пользовательского контента.

Параметры
  • Нет
Возвращаемое значение
  • объект usercontentControllerObject
Примечания
  • Класс WKUserContentController позволяет только удалять все скрипты. Если вам нужна более точная настройка, сделайте копию текущих скриптов с помощью hs.webview.usercontent.userScripts() предварительно, чтобы вы могли воссоздать нужные скрипты.
Источник extensions/webview/libwebview_usercontent.m строка 111
setCallback
Подпись hs.webview.usercontent:setCallback(fn) -> usercontentControllerObject
Тип Метод
Описание

Устанавливает или удаляет функцию обратного вызова для обработки сообщений, отправленных в порт сообщений этого пользовательского контента.

Параметры
  • fn - функция, которая должна получать сообщения, отправленные в порт сообщений этого пользовательского контента. Укажите явное nil, чтобы отключить обратный вызов. Функция должна принимать один аргумент, который будет отправленным сообщением, и возвращаемое значение будет проигнорировано.
Возвращаемое значение
  • объект usercontentControllerObject
Примечания
  • В вашем (вставленном или обслуживаемом) JavaScript вы можете отправлять сообщения через порт сообщений, созданный с помощью конструктора следующим образом:

    try { webkit.messageHandlers.name>.postMessage(message-object); } catch(err) { console.log('The controller does not exist yet'); }

  • Где name соответствует имени, указанному в конструкторе, а message-object — это объект, который нужно отправить в функцию. Этот объект может быть числом, строкой, датой, массивом, словарем (таблицей) или nil.

Источник extensions/webview/libwebview_usercontent.m строка 133
userScripts
Подпись hs.webview.usercontent:userScripts() -> array
Тип Метод
Описание

Получает таблицу, содержащую все текущие определенные скрипты вставки для этого контроллера пользовательского контента.

Параметры
  • Нет
Возвращаемое значение
  • Массив вставленных пользовательских скриптов. Каждый элемент массива будет таблицей, содержащей следующие ключи:
    • source - вставляемый JavaScript
    • mainFrame - логическое значение, указывающее, вставляется ли этот скрипт только для основного кадра веб-вью (true) или для всех кадров внутри веб-вью (false)
    • injectionTime - строка, указывающая, вставляется ли скрипт в "documentStart" или "documentEnd".
Примечания
  • Поскольку класс WKUserContentController позволяет только удалять все скрипты, вы можете использовать этот метод для генерации списка всех скриптов, изменить его и затем использовать его в цикле для повторного применения скриптов, если вам нужно удалить только несколько скриптов.
Источник extensions/webview/libwebview_usercontent.m строка 86

© 2014–2017 Hammerspoon contributors
Licensed under the MIT License.
https://www.hammerspoon.org/docs/hs.webview.usercontent.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API