ultralight-godot SHOWCASEshabbywu/ultralight-godot

API / CLASS REFERENCE

UltralightAPI

继承: RefCounted

使用应用自行命名的 JavaScript 命名空间,持久注册业务接口。

通过 create 指定命名空间,注册函数或对象,再附着到一个或多个 UltralightView。命名空间必须是单个 ASCII JavaScript 标识符,不能与页面已有全局名称冲突。

每次创建主文档时,注册项都会在 window_ready 信号和页面脚本执行前安装。容器默认按引用共享;注销、分离或关闭注册表会同时撤销 JS 已缓存的引用。命名空间内保留 $bridge,提供 copy(value) 和保留字典键类型的 get/set 方法。所有桥接操作均应在 Godot 主线程执行。

属性

成员类型默认值
namespaceString—

方法

namespaceString

调用方选择的 JS 全局名称,只读。

默认值: — · 访问器: get_namespace() · 只读

create

create(namespace: String) → UltralightAPI static

为一个 ASCII JavaScript 标识符创建注册表。无效名称或保留字返回 null;仅创建注册表不会立即导出全局对象。

get_namespace

get_namespace() → String const

读取 namespace。

is_closed

is_closed() → bool const

返回注册表是否已关闭。

register_function

register_function(name: String, function: Callable, options: UltralightBindingOptions = null) → UltralightResult

注册或替换同步 Callable。参数和返回值默认使用共享转换;返回安装结果。可通过 options 显式选择按值转换。

register_async

register_async(name: String, handler: Callable, options: UltralightBindingOptions = null) → UltralightResult

注册接收 (UltralightTask request, Array arguments) 的处理器。JS 调用得到 Promise;处理器须在主线程调用 request.resolve 或 request.reject。

register_object

register_object(name: String, object: Variant, options: UltralightBindingOptions = null) → UltralightResult

注册或替换 Godot 对象、Array 或 Dictionary,可配置根成员名单、只读和按值转换。Nil 会被拒绝。

unregister

unregister(name: String) → void

从所有已附着 View 中移除此注册项,并撤销旧代理及其嵌套引用。

attach

attach(view: Object) → UltralightResult

附着到 UltralightView。有可用文档时立即安装,并在后续文档中自动恢复。重复附着幂等;命名冲突返回错误,安装失败时回滚已安装的本次注册项。

detach

detach(view: Object) → void

从指定 View 移除该注册表的命名空间并撤销绑定,不关闭 View。重复分离幂等。

close

close() → void

分离全部 View、撤销代理并清除注册定义。可重复调用;关闭后不能再次注册或附着。

查看类文档源码 ↗

Godot 运行截图 · 按 Esc 关闭 打开原图 ↗