JavaScriptBridge

Наследует: Object

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

Описание

Синглтон JavaScriptBridge реализован только в экспорте Web. Он используется для доступа к контексту JavaScript браузера. Это позволяет взаимодействовать со встроенными страницами или вызывать сторонние JavaScript API.

Примечание: Этот синглтон можно отключить во время сборки для повышения безопасности. По умолчанию синглтон JavaScriptBridge включён. В официальных шаблонах экспорта синглтон JavaScriptBridge также включён. Подробнее см. в разделе Компиляция для Web в документации.

Обучающие материалы

Методы

JavaScriptObject

create_callback(callable: Callable)

Variant

create_object(object: String, ...) vararg

void

download_buffer(buffer: PackedByteArray, name: String, mime: String = "application/octet-stream")

Variant

eval(code: String, use_global_execution_context: bool = false)

void

force_fs_sync()

JavaScriptObject

get_interface(interface: String)

bool

is_js_buffer(javascript_object: JavaScriptObject)

PackedByteArray

js_buffer_to_packed_byte_array(javascript_buffer: JavaScriptObject)

bool

pwa_needs_update() const

Error

pwa_update()


Сигналы

pwa_update_available() 🔗

Выдается, когда обнаружено обновление для этого прогрессивного веб-приложения, но оно ожидает активации, поскольку активна предыдущая версия. См. pwa_update(), чтобы принудительно выполнить обновление немедленно.


Описания метода

JavaScriptObject create_callback(callable: Callable) 🔗

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

Примечание: Функция обратного вызова должна принимать ровно один аргумент Array, который будет объектом JavaScript arguments, преобразованным в массив.


Variant create_object(object: String, ...) vararg 🔗

Создает новый объект JavaScript с помощью конструктора new. object должен быть допустимым свойством JavaScript window. См. JavaScriptObject для использования.


void download_buffer(buffer: PackedByteArray, name: String, mime: String = "application/octet-stream") 🔗

Предлагает пользователю загрузить файл, содержащий указанный buffer. Файл будет иметь заданные name и mime тип.

Примечание: Браузер может переопределить MIME-тип, предоставленный на основе расширения файла name.

Примечание: Браузеры могут блокировать загрузку, если download_buffer() не вызывается из взаимодействия с пользователем (например, нажатием кнопки).

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


Variant eval(code: String, use_global_execution_context: bool = false) 🔗

Выполнить строку code как код JavaScript в окне браузера. Это вызов фактической глобальной функции JavaScript eval().

Если use_global_execution_context равен true, код будет оценен в глобальном контексте выполнения. В противном случае он оценен в контексте выполнения функции в среде выполнения движка.


void force_fs_sync() 🔗

Принудительная синхронизация постоянной файловой системы (если включено).

Примечание: Это полезно только для модулей или расширений, которые не могут использовать FileAccess для записи файлов.


JavaScriptObject get_interface(interface: String) 🔗

Возвращает интерфейс к объекту JavaScript, который может использоваться скриптами. interface должен быть допустимым свойством `` window`` JavaScript. Обратный вызов должен принимать один аргумент Array, который будет содержать аргументы arguments. См. JavaScriptObject для использования.


bool is_js_buffer(javascript_object: JavaScriptObject) 🔗

Возвращает true, если заданный javascript_object имеет тип [code]ArrayBuffer[/code], [code]DataView[/code] или один из многих типизированных объектов массива.


PackedByteArray js_buffer_to_packed_byte_array(javascript_buffer: JavaScriptObject) 🔗

Возвращает копию содержимого javascript_buffer в виде PackedByteArray. См. также is_js_buffer().


bool pwa_needs_update() const 🔗

Возвращает true, если новая версия прогрессивного веб-приложения ожидает активации.

Примечание: Актуально только при экспорте в качестве прогрессивного веб-приложения.


Error pwa_update() 🔗

Выполняет обновление прогрессивного веб-приложения в реальном времени. Принудительно устанавливает новую версию и перезагружает страницу.

Примечание: Ваше приложение будет перезагружено во всех вкладках браузера.

Примечание: Актуально только при экспорте в качестве прогрессивного веб-приложения и pwa_needs_update() возвращает true.