ОбъектВебВью
объект окна браузера
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, необходимо добавить переменную переключателя, чтобы определить, нужно ли обрабатывать это событие.
отношения наследства
статические свойства
defaultMaxListeners
Целое число, глобальное максимальное количество слушателей по умолчанию.
1static Integer WebView.defaultMaxListeners;
свойства члена
onopen
Событие успешной загрузки функции, запроса и привязки, эквивалентное on("open", func);
1Function WebView.onopen;
onload
Функция, запрос и привязка событий успешной загрузки, эквивалентных on("load", func);
1Function WebView.onload;
onaddress
События изменения адреса страницы функции, запроса и привязки, эквивалентные on("address", func);
1Function WebView.onaddress;
ontitle
Функция, запрос и привязка событий изменения заголовка страницы, эквивалентные on("title", func);
1Function WebView.ontitle;
onmove
Функция, запрос и привязка событий движения окна, эквивалентная on("move", func);
1Function WebView.onmove;
В следующем примере выводятся координаты верхнего левого угла окна при его перемещении:
1
2
3
4var gui = require('gui');
var webview = gui.open('fs://index.html');
webview.onmove = evt => console.log(evt.left, evt.top);
onresize
Функция, запрашивает и связывает события изменения размера окна, что эквивалентно on("size", func);
1Function WebView.onresize;
В следующем примере выводятся размеры окна при изменении его размера:
1
2
3
4var gui = require('gui');
var webview = gui.open('fs://index.html');
webview.onresize = evt => console.log(evt.width, evt.height);
onclosed
Функция, запрос и привязка события закрытия окна. На этот раз оно будет вызвано после закрытия WebView, что эквивалентно on("closed", func);
1Function WebView.onclosed;
onmessage
Функция, запрос и привязка принимают события сообщения postMessage в веб-просмотре, что эквивалентно on("message", func);
1Function WebView.onmessage;
ondownload
Функция, запрос и привязка принимают события изменения статуса транзакции загрузки в веб-просмотре, что эквивалентно on("download", func);
1Function WebView.ondownload;
функция-член
loadUrl
указанная нагрузкаurlстраница
1WebView.loadUrl(String url) async;
Параметры звонка:
- url: указанная строкаurl
getUrl
Запросить текущую страницуurl
1String WebView.getUrl() async;
Результаты возврата:
- String, возвращает текущую страницуurl
setHtml
Установите HTML-страницу веб-просмотра
1WebView.setHtml(String html) async;
Параметры звонка:
- html: строка, установите html
reload
Обновить текущую страницу
1WebView.reload() async;
goBack
Вернуться на предыдущую страницу
1WebView.goBack() async;
goForward
Перейти на следующую страницу
1WebView.goForward() async;
Распечатать текущий документ окна
1WebView.print(Integer mode = 1) async;
Параметры звонка:
- mode: целое число, параметры печати, 0: быстрая печать; 1: стандартная печать; 2: предварительный просмотр печати. По умолчанию – 1.
executeJavaScript
Запустите фрагмент кода JavaScript в текущем окне
1WebView.executeJavaScript(String code) async;
Параметры звонка:
- code: строка, указывает код JavaScript, который будет выполнен.
close
Закрыть текущее окно
1WebView.close() async;
postMessage
Отправить сообщение в веб-просмотр
1WebView.postMessage(String msg) async;
Параметры звонка:
msg: строка, сообщение для отправки.
postMessage необходимо отправить сообщение после загрузки окна, а сообщения, отправленные ранее, будут потеряны. Поэтому рекомендуется вызывать этот метод после срабатывания события загрузки.
on
Привязать обработчик событий к объекту
1
2Object WebView.on(String ev,
Function func);
Параметры звонка:
- ev: строка, указывает название события.
- func: Функция, укажите функцию обработки событий.
Результаты возврата:
- Object, возвращает сам объект события для облегчения цепных вызовов
Привязать обработчик событий к объекту
1Object WebView.on(Object map);
Параметры звонка:
- map: Объект, определяет связь сопоставления событий, имя атрибута объекта будет использоваться в качестве имени события, а значение атрибута будет использоваться в качестве функции обработки событий.
Результаты возврата:
- Object, возвращает сам объект события для облегчения цепных вызовов
addListener
Привязать обработчик событий к объекту
1
2Object WebView.addListener(String ev,
Function func);
Параметры звонка:
- ev: строка, указывает название события.
- func: Функция, укажите функцию обработки событий.
Результаты возврата:
- Object, возвращает сам объект события для облегчения цепных вызовов
Привязать обработчик событий к объекту
1Object WebView.addListener(Object map);
Параметры звонка:
- map: Объект, определяет связь сопоставления событий, имя атрибута объекта будет использоваться в качестве имени события, а значение атрибута будет использоваться в качестве функции обработки событий.
Результаты возврата:
- Object, возвращает сам объект события для облегчения цепных вызовов
prependListener
Привяжите обработчик событий к источнику объекта
1
2Object WebView.prependListener(String ev,
Function func);
Параметры звонка:
- ev: строка, указывает название события.
- func: Функция, укажите функцию обработки событий.
Результаты возврата:
- Object, возвращает сам объект события для облегчения цепных вызовов
Привяжите обработчик событий к источнику объекта
1Object WebView.prependListener(Object map);
Параметры звонка:
- map: Объект, определяет связь сопоставления событий, имя атрибута объекта будет использоваться в качестве имени события, а значение атрибута будет использоваться в качестве функции обработки событий.
Результаты возврата:
- Object, возвращает сам объект события для облегчения цепных вызовов
once
Привяжите к объекту одноразовый обработчик событий. Одноразовый обработчик будет срабатывать только один раз.
1
2Object WebView.once(String ev,
Function func);
Параметры звонка:
- ev: строка, указывает название события.
- func: Функция, укажите функцию обработки событий.
Результаты возврата:
- Object, возвращает сам объект события для облегчения цепных вызовов
Привяжите к объекту одноразовый обработчик событий. Одноразовый обработчик будет срабатывать только один раз.
1Object WebView.once(Object map);
Параметры звонка:
- map: Объект, определяет связь сопоставления событий, имя атрибута объекта будет использоваться в качестве имени события, а значение атрибута будет использоваться в качестве функции обработки событий.
Результаты возврата:
- Object, возвращает сам объект события для облегчения цепных вызовов
prependOnceListener
Привяжите обработчик событий к источнику объекта
1
2Object WebView.prependOnceListener(String ev,
Function func);
Параметры звонка:
- ev: строка, указывает название события.
- func: Функция, укажите функцию обработки событий.
Результаты возврата:
- Object, возвращает сам объект события для облегчения цепных вызовов
Привяжите обработчик событий к источнику объекта
1Object WebView.prependOnceListener(Object map);
Параметры звонка:
- map: Объект, определяет связь сопоставления событий, имя атрибута объекта будет использоваться в качестве имени события, а значение атрибута будет использоваться в качестве функции обработки событий.
Результаты возврата:
- Object, возвращает сам объект события для облегчения цепных вызовов
off
Отменить назначение функции из очереди обработки объекта
1
2Object WebView.off(String ev,
Function func);
Параметры звонка:
- ev: строка, указывает название события.
- func: Функция, укажите функцию обработки событий.
Результаты возврата:
- Object, возвращает сам объект события для облегчения цепных вызовов
Отменить все функции в очереди обработки объекта
1Object WebView.off(String ev);
Параметры звонка:
- ev: строка, указывает название события.
Результаты возврата:
- Object, возвращает сам объект события для облегчения цепных вызовов
Отменить назначение функции из очереди обработки объекта
1Object WebView.off(Object map);
Параметры звонка:
- map: Объект, определяет связь сопоставления событий, имя атрибута объекта используется в качестве имени события, а значение атрибута используется в качестве функции обработки событий.
Результаты возврата:
- Object, возвращает сам объект события для облегчения цепных вызовов
removeListener
Отменить назначение функции из очереди обработки объекта
1
2Object WebView.removeListener(String ev,
Function func);
Параметры звонка:
- ev: строка, указывает название события.
- func: Функция, укажите функцию обработки событий.
Результаты возврата:
- Object, возвращает сам объект события для облегчения цепных вызовов
Отменить все функции в очереди обработки объекта
1Object WebView.removeListener(String ev);
Параметры звонка:
- ev: строка, указывает название события.
Результаты возврата:
- Object, возвращает сам объект события для облегчения цепных вызовов
Отменить назначение функции из очереди обработки объекта
1Object WebView.removeListener(Object map);
Параметры звонка:
- map: Объект, определяет связь сопоставления событий, имя атрибута объекта используется в качестве имени события, а значение атрибута используется в качестве функции обработки событий.
Результаты возврата:
- Object, возвращает сам объект события для облегчения цепных вызовов
removeAllListeners
Отменяет все прослушиватели всех событий из очереди обработки объекта. Если событие указано, удаляются все прослушиватели указанного события.
1Object WebView.removeAllListeners(String ev);
Параметры звонка:
- ev: строка, указывает название события.
Результаты возврата:
- Object, возвращает сам объект события для облегчения цепных вызовов
Отменяет все прослушиватели всех событий из очереди обработки объекта. Если событие указано, удаляются все прослушиватели указанного события.
1Object WebView.removeAllListeners(Array evs = []);
Параметры звонка:
- evs: Массив, укажите название события
Результаты возврата:
- Object, возвращает сам объект события для облегчения цепных вызовов
setMaxListeners
Ограничение количества прослушивателей по умолчанию, только для совместимости.
1WebView.setMaxListeners(Integer n);
Параметры звонка:
- n: Целое число, укажите количество событий
getMaxListeners
Получает предельное количество прослушивателей по умолчанию, только для совместимости.
1Integer WebView.getMaxListeners();
Результаты возврата:
- Integer, возвращает лимитируемое количество по умолчанию
listeners
Запросить массив прослушивателей для указанного события объекта
1Array WebView.listeners(String ev);
Параметры звонка:
- ev: строка, указывает название события.
Результаты возврата:
- Array, возвращает массив прослушивателей для указанного события
listenerCount
Запрос количества прослушивателей для указанного события объекта
1Integer WebView.listenerCount(String ev);
Параметры звонка:
- ev: строка, указывает название события.
Результаты возврата:
- Integer, возвращает количество прослушивателей указанного события
Запрос количества прослушивателей для указанного события объекта
1
2Integer WebView.listenerCount(Value o,
String ev);
Параметры звонка:
- o: Значение, указывает объект запроса.
- ev: строка, указывает название события.
Результаты возврата:
- Integer, возвращает количество прослушивателей указанного события
eventNames
Имя события прослушивателя запроса
1Array WebView.eventNames();
Результаты возврата:
- Array, возвращает массив имен событий
emit
Активно запускать событие
1
2Boolean WebView.emit(String ev,
...args);
Параметры звонка:
- ev: строка, имя события
- args: ..., параметры события будут переданы в функцию обработки событий
Результаты возврата:
- Boolean, возвращает статус триггера события, возвращает true, если есть ответное событие, в противном случае возвращает false
toString
Возвращает строковое представление объекта. Обычно возвращается «[Native Object]». Объект может быть повторно реализован в соответствии с его собственными характеристиками.
1String WebView.toString();
Результаты возврата:
- String, возвращает строковое представление объекта
toJSON
Возвращает представление объекта в формате JSON, обычно возвращая коллекцию читаемых свойств, определенных объектом.
1Value WebView.toJSON(String key = "");
Параметры звонка:
- key: Строка, не используется.
Результаты возврата:
- Value, возвращает значение, содержащее сериализуемый JSON