Объект встроенный объект

Объект WebView

Объект окна браузера

WebView - это компонент окна, встроенный в браузер, в настоящее время поддерживает только Windows, macOS (10.10+). Используйте ядро ​​IE / Edge в Windows, используйте WKWebView в macOS.

Поскольку программа JavaScript в WebView и fibjs находятся в разных движках, если вам нужно взаимодействовать с основной программой, вам нужно использовать сообщения.

Объект, используемый WebView для связи, является внешним, который поддерживает один метод postMessage и два события onmessage и onclose.

Вот простой пример кода связи:

1 2 3 4 5 6 7 8 9
// index.js var gui = require('gui'); var webview = gui.open('fs://index.html'); webview.onmessage = msg => console.log(msg); webview.onload = evt => webview.postMessage("hello from fibjs"); webview.wait();

Содержимое index.html выглядит следующим образом:

1 2 3 4 5 6 7 8
<script> external.onclose = function() { } external.onmessage = function(msg){ external.postMessage("send back: " + msg); }; </script>

Перед закрытием пользовательского окна запускается событие external.onclose, и external.onclose может решить, закрывать ли его. Если external.onclose возвращает false, операция отменяется, в противном случае окно закрывается.

В следующем примере будет ждать 5 секунд после того, как пользователь нажмет кнопку «Закрыть», а затем закроет окно.

1 2 3 4 5 6 7 8 9 10 11 12
<script lang="JavaScript"> var bClose = false; external.onclose = function () { if (!bClose) { setTimeout(function () { bClose = true; window.close(); }, 5000); return false; } } </script>

В приведенном выше коде, поскольку сам window.close также запускает событие onclose, необходимо добавить переменную переключателя, чтобы определить, нужно ли обрабатывать событие.

Наследование

#lineWidth: 1.5 #font: Helvetica,sans-Serif #fontSize: 10 #leading: 1.6 #.this: fill=lightgray #.class: fill=white [<class>object|toString();toJSON()] [<class>EventEmitter|new EventEmitter()|EventEmitter|defaultMaxListeners|on();addListener();prependListener();once();prependOnceListener();off();removeListener();removeAllListeners();setMaxListeners();getMaxListeners();listeners();listenerCount();eventNames();emit()] [<this>WebView|type;dev;onopen;onload;onaddress;ontitle;onmove;onresize;onclosed;onmessage;ondownload|loadUrl();getUrl();setHtml();reload();goBack();goForward();print();printToPDF();executeJavaScript();executeDevToolsMethod();close();postMessage()] [object] <:- [EventEmitter] [EventEmitter] <:- [WebView] EventEmitter new EventEmitter() EventEmitter defaultMaxListeners on() addListener() prependListener() once() prependOnceListener() off() removeListener() removeAllListeners() setMaxListeners() getMaxListeners() listeners() listenerCount() eventNames() emit() WebView type dev onopen onload onaddress ontitle onmove onresize onclosed onmessage ondownload loadUrl() getUrl() setHtml() reload() goBack() goForward() print() printToPDF() executeJavaScript() executeDevToolsMethod() close() postMessage() object toString() toJSON()

Статические свойства

defaultMaxListeners

Целое число, максимальное глобальное количество слушателей по умолчанию

1
static Integer WebView.defaultMaxListeners;

Атрибуты члена

type

Строка, механизм WebView текущего окна

1
readonly String WebView.type;

dev

Value, объект доступа DevTools, обратитесь к вызывающему интерфейсу: https://chromedevtools.github.io/devtools-protocol/

1
readonly Value WebView.dev;

onopen

Событие успешной загрузки функции, запроса и привязки, эквивалентное on ("open", func);

1
Function WebView.onopen;

onload

Событие успешной загрузки функции, запроса и привязки, эквивалентное on ("load", func);

1
Function WebView.onload;

onaddress

Функция, запрос и привязка события изменения адреса страницы, эквивалентное on ("address", func);

1
Function WebView.onaddress;

ontitle

Функция, запрос и привязка события изменения заголовка страницы, эквивалентное on ("title", func);

1
Function WebView.ontitle;

onmove

Функция, запрос и привязка событий движения окна, эквивалентные on ("move", func);

1
Function WebView.onmove;

В следующем примере выводятся координаты левого верхнего угла окна при его перемещении:

1 2 3 4
var gui = require('gui'); var webview = gui.open('fs://index.html'); webview.onmove = evt => console.log(evt.left, evt.top);

onresize

Событие изменения размера окна функции, запроса и привязки, эквивалентное on ("size", func);

1
Function WebView.onresize;

В следующем примере выводится размер окна при изменении размера окна:

1 2 3 4
var gui = require('gui'); var webview = gui.open('fs://index.html'); webview.onresize = evt => console.log(evt.width, evt.height);

onclosed

Событие закрытия окна функции, запроса и привязки, на этот раз будет срабатывать после закрытия WebView, что эквивалентно on ("closed", func);

1
Function WebView.onclosed;

onmessage

Функция, запрос и привязка для приема события postMessage в веб-просмотре, что эквивалентно on ("message", func);

1
Function WebView.onmessage;

ondownload

Функция, запрос и привязка для принятия события изменения статуса транзакции загрузки в веб-просмотре, что эквивалентно on ("загрузка", func);

1
Function WebView.ondownload;

Функция члена

loadUrl

Указанная нагрузка url Страница из

1
WebView.loadUrl(String url) async;

Параметры звонка:

  • url: Строка, указанная url

getUrl

Запросить текущую страницу url

1
String WebView.getUrl() async;

Результат возврата:

  • String, Вернуться на текущую страницу url

setHtml

Установите html страницы веб-просмотра

1
WebView.setHtml(String html) async;

Параметры звонка:

  • html: String, установить html

reload

Обновить текущую страницу

1
WebView.reload() async;

goBack

Вернуться к предыдущей странице

1
WebView.goBack() async;

goForward

Переход на следующую страницу

1
WebView.goForward() async;

print

Распечатать текущий оконный документ

1
WebView.print(Integer mode = 1) async;

Параметры звонка:

  • mode: Целое число, параметр печати, 0: быстрая печать; 1: стандартная печать; 2: предварительный просмотр печати. По умолчанию 1

printToPDF

Распечатать текущий документ окна в файл PDF

1
WebView.printToPDF(String file) async;

Параметры звонка:

  • file: String, укажите путь к pdf

executeJavaScript

Запустить фрагмент кода JavaScript в текущем окне

1
WebView.executeJavaScript(String code) async;

Параметры звонка:

  • code: String, укажите код JavaScript для выполнения

executeDevToolsMethod

Выполнить команду DevTools в текущем окне и вернуть результат

1 2
Variant WebView.executeDevToolsMethod(String method, Object params = {}) async;

Параметры звонка:

  • method: String укажите команду DevTools для выполнения
  • params: Object, укажите параметры команды

Результат возврата:

  • Variant, Вернуть результат выполнения

close

Закрыть текущее окно

1
WebView.close() async;

postMessage

Отправить сообщение веб-просмотру

1
WebView.postMessage(String msg) async;

Параметры звонка:

  • msg: String, сообщение для отправки

    postMessage необходимо отправить сообщение после загрузки окна, сообщения, отправленные до этого, будут потеряны. Поэтому рекомендуется вызывать этот метод после запуска события onload.


on

Привяжите обработчик события к объекту

1 2
Object WebView.on(String ev, Function func);

Параметры звонка:

  • ev: String укажите название события
  • func: Функция, укажите функцию обработки событий

Результат возврата:

  • Object, Вернуть сам объект события, что удобно для цепного вызова

Привяжите обработчик события к объекту

1
Object WebView.on(Object map);

Параметры звонка:

  • map: Object, укажите отношение сопоставления событий, имя свойства объекта будет использоваться как имя события, а значение свойства будет использоваться как функция обработки события

Результат возврата:

  • Object, Вернуть сам объект события, что удобно для цепного вызова

addListener

Привяжите обработчик события к объекту

1 2
Object WebView.addListener(String ev, Function func);

Параметры звонка:

  • ev: String укажите название события
  • func: Функция, укажите функцию обработки событий

Результат возврата:

  • Object, Вернуть сам объект события, что удобно для цепного вызова

Привяжите обработчик события к объекту

1
Object WebView.addListener(Object map);

Параметры звонка:

  • map: Object, укажите отношение сопоставления событий, имя свойства объекта будет использоваться как имя события, а значение свойства будет использоваться как функция обработки события

Результат возврата:

  • Object, Вернуть сам объект события, что удобно для цепного вызова

prependListener

Привяжите обработчик события к началу объекта

1 2
Object WebView.prependListener(String ev, Function func);

Параметры звонка:

  • ev: String укажите название события
  • func: Функция, укажите функцию обработки событий

Результат возврата:

  • Object, Вернуть сам объект события, что удобно для цепного вызова

Привяжите обработчик события к началу объекта

1
Object WebView.prependListener(Object map);

Параметры звонка:

  • map: Object, укажите отношение сопоставления событий, имя свойства объекта будет использоваться как имя события, а значение свойства будет использоваться как функция обработки события

Результат возврата:

  • Object, Вернуть сам объект события, что удобно для цепного вызова

once

Привязать к объекту функцию одноразовой обработки событий, функция одноразовой обработки будет срабатывать только один раз

1 2
Object WebView.once(String ev, Function func);

Параметры звонка:

  • ev: String укажите название события
  • func: Функция, укажите функцию обработки событий

Результат возврата:

  • Object, Вернуть сам объект события, что удобно для цепного вызова

Привязать к объекту функцию одноразовой обработки событий, функция одноразовой обработки будет срабатывать только один раз

1
Object WebView.once(Object map);

Параметры звонка:

  • map: Object, укажите отношение сопоставления событий, имя свойства объекта будет использоваться как имя события, а значение свойства будет использоваться как функция обработки события

Результат возврата:

  • Object, Вернуть сам объект события, что удобно для цепного вызова

prependOnceListener

Привяжите обработчик события к началу объекта

1 2
Object WebView.prependOnceListener(String ev, Function func);

Параметры звонка:

  • ev: String укажите название события
  • func: Функция, укажите функцию обработки событий

Результат возврата:

  • Object, Вернуть сам объект события, что удобно для цепного вызова

Привяжите обработчик события к началу объекта

1
Object WebView.prependOnceListener(Object map);

Параметры звонка:

  • map: Object, укажите отношение сопоставления событий, имя свойства объекта будет использоваться как имя события, а значение свойства будет использоваться как функция обработки события

Результат возврата:

  • Object, Вернуть сам объект события, что удобно для цепного вызова

off

Отменить указанную функцию из очереди обработки объекта

1 2
Object WebView.off(String ev, Function func);

Параметры звонка:

  • ev: String укажите название события
  • func: Функция, укажите функцию обработки событий

Результат возврата:

  • Object, Вернуть сам объект события, что удобно для цепного вызова

Отменить все функции в очереди обработки объекта

1
Object WebView.off(String ev);

Параметры звонка:

  • ev: String укажите название события

Результат возврата:

  • Object, Вернуть сам объект события, что удобно для цепного вызова

Отменить указанную функцию из очереди обработки объекта

1
Object WebView.off(Object map);

Параметры звонка:

  • map: Object, укажите отношение сопоставления событий, имя свойства объекта используется как имя события, а значение свойства используется как функция обработки события.

Результат возврата:

  • Object, Вернуть сам объект события, что удобно для цепного вызова

removeListener

Отменить указанную функцию из очереди обработки объекта

1 2
Object WebView.removeListener(String ev, Function func);

Параметры звонка:

  • ev: String укажите название события
  • func: Функция, укажите функцию обработки событий

Результат возврата:

  • Object, Вернуть сам объект события, что удобно для цепного вызова

Отменить все функции в очереди обработки объекта

1
Object WebView.removeListener(String ev);

Параметры звонка:

  • ev: String укажите название события

Результат возврата:

  • Object, Вернуть сам объект события, что удобно для цепного вызова

Отменить указанную функцию из очереди обработки объекта

1
Object WebView.removeListener(Object map);

Параметры звонка:

  • map: Object, укажите отношение сопоставления событий, имя свойства объекта используется как имя события, а значение свойства используется как функция обработки события.

Результат возврата:

  • Object, Вернуть сам объект события, что удобно для цепного вызова

removeAllListeners

Отменить все прослушиватели всех событий из очереди обработки объекта.Если событие указано, удалить всех прослушивателей указанного события.

1
Object WebView.removeAllListeners(String ev);

Параметры звонка:

  • ev: String укажите название события

Результат возврата:

  • Object, Вернуть сам объект события, что удобно для цепного вызова

Отменить все прослушиватели всех событий из очереди обработки объекта.Если событие указано, удалить всех прослушивателей указанного события.

1
Object WebView.removeAllListeners(Array evs = []);

Параметры звонка:

  • evs: Массив, укажите название события

Результат возврата:

  • Object, Вернуть сам объект события, что удобно для цепного вызова

setMaxListeners

Ограничение количества слушателей по умолчанию, только для совместимости

1
WebView.setMaxListeners(Integer n);

Параметры звонка:

  • n: Целое число, укажите количество событий

getMaxListeners

Получите ограничение количества слушателей по умолчанию, только для совместимости

1
Integer WebView.getMaxListeners();

Результат возврата:

  • Integer, Вернуться к предельному числу по умолчанию

listeners

Массив слушателей для указанного события объекта запроса

1
Array WebView.listeners(String ev);

Параметры звонка:

  • ev: String укажите название события

Результат возврата:

  • Array, Возвращает массив слушателей для указанного события

listenerCount

Количество слушателей для указанного события объекта запроса

1
Integer WebView.listenerCount(String ev);

Параметры звонка:

  • ev: String укажите название события

Результат возврата:

  • Integer, Возвращает количество слушателей для указанного события

Количество слушателей для указанного события объекта запроса

1 2
Integer WebView.listenerCount(Value o, String ev);

Параметры звонка:

  • o: Значение, укажите объект запроса
  • ev: String укажите название события

Результат возврата:

  • Integer, Возвращает количество слушателей для указанного события

eventNames

Запросить имя события слушателя

1
Array WebView.eventNames();

Результат возврата:

  • Array, Возвращает массив имен событий

emit

Активно запускать событие

1 2
Boolean WebView.emit(String ev, ...args);

Параметры звонка:

  • ev: Строка, название события
  • args: ..., параметры события, которые будут переданы обработчику события

Результат возврата:

  • Boolean, Вернитесь в состояние триггера события, верните истину, если есть событие ответа, в противном случае верните ложь

toString

Возвращает строковое представление объекта, обычно возвращает «[Native Object]», объект может быть повторно реализован в соответствии с его собственными характеристиками.

1
String WebView.toString();

Результат возврата:

  • String, Возвращает строковое представление объекта

toJSON

Возвращает представление объекта в формате JSON, обычно возвращает набор читаемых атрибутов, определенных объектом.

1
Value WebView.toJSON(String key = "");

Параметры звонка:

  • key: Строка, не используется

Результат возврата:

  • Value, Возвращает значение, содержащее сериализуемый JSON