Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

JavaScriptBridge

继承: Object

单例,在 Web 导出中将引擎与浏览器的 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 参数对象


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

使用 new 构造函数创建一个新的 JavaScript 对象。object 必须是 JavaScript window 的有效属性。有关用法,请参阅 JavaScriptObject


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

提示用户下载一个包含指定 buffer 的文件。该文件将具有给定的 namemime 类型。

注意:浏览器可能会覆盖根据文件 name 的扩展名提供的 MIME 类型

注意:如果 download_buffer() 不是从用户交互(例如按钮点击)中调用的,浏览器可能会阻止下载。

注意:如果快速连续发出多个下载请求,浏览器可能会要求用户同意或阻止下载。


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

在浏览器窗口中将字符串 code 作为 JavaScript 代码执行。这是对实际的全局 JavaScript 函数 eval() 的调用。

如果 use_global_execution_contexttrue,则代码将在全局执行上下文中被求值。否则,它将在引擎运行时环境中的函数的执行上下文中进行求值。


void force_fs_sync() 🔗

强制同步持久化文件系统(当启用时)。

注意:这仅对不能使用 FileAccess 写入文件的模块或扩展有用。


JavaScriptObject get_interface(interface: String) 🔗

返回一个可以被脚本使用的 JavaScript 对象的接口。interface 必须是 JavaScript window 的有效属性。回调必须接受单个 Array 参数,它将包含 JavaScript arguments。有关用法,请参阅 JavaScriptObject


bool is_js_buffer(javascript_object: JavaScriptObject) 🔗

如果给定的 javascript_object[code]ArrayBuffer[/code][code]DataView[/code] 或某种类型化数组对象类型,则返回 true


PackedByteArray js_buffer_to_packed_byte_array(javascript_buffer: JavaScriptObject) 🔗

PackedByteArray 的形式返回 javascript_buffer 中内容的副本。另见 is_js_buffer()


bool pwa_needs_update() const 🔗

如果该渐进式网络应用程序有新版本等待激活,则返回 true

注意:只在导出为渐进式网络应用程序(Progressive Web App)时相关。


Error pwa_update() 🔗

执行该渐进式网络应用程序的在线更新。强制安装新版本并重新载入该页面。

注意:你的应用程序将在所有浏览器标签页中重新载入

注意:只在导出为渐进式网络应用程序(Progressive Web App)且 pwa_needs_update() 返回 true 时相关。