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.
Checking the stable version of the documentation...
JavaScriptBridge
继承: Object
单例,在 Web 导出中将引擎与浏览器的 JavaScript 上下文连接。
描述
JavaScriptBridge 单例仅在 Web 导出中实现。它用于访问浏览器的 JavaScript 上下文。这允许与嵌入页面或调用第三方 JavaScript API 进行交互。
注意:可以在构建时禁用该单例以提高安全性。默认情况下,启用 JavaScriptBridge 单例。官方导出模板也启用了 JavaScriptBridge 单例。有关详细信息,请参阅文档中的《为 Web 平台编译》。
教程
方法
create_callback(callable: Callable) |
|
create_object(object: String, ...) vararg |
|
void |
download_buffer(buffer: PackedByteArray, name: String, mime: String = "application/octet-stream") |
eval(code: String, use_global_execution_context: bool = false) |
|
void |
|
get_interface(interface: String) |
|
is_js_buffer(javascript_object: JavaScriptObject) |
|
js_buffer_to_packed_byte_array(javascript_buffer: JavaScriptObject) |
|
pwa_needs_update() const |
|
信号
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
的文件。该文件将具有给定的 name
和 mime
类型。
注意:浏览器可能会覆盖根据文件 name
的扩展名提供的 MIME 类型。
注意:如果 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
必须是 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)时相关。
执行该渐进式网络应用程序的在线更新。强制安装新版本并重新载入该页面。
注意:你的应用程序将在所有浏览器标签页中重新载入。
注意:只在导出为渐进式网络应用程序(Progressive Web App)且 pwa_needs_update() 返回 true
时相关。