API / CLASS REFERENCE
UltralightAPI
继承: RefCounted
使用应用自行命名的 JavaScript 命名空间,持久注册业务接口。
通过 create 指定命名空间,注册函数或对象,再附着到一个或多个 UltralightView。命名空间必须是单个 ASCII JavaScript 标识符,不能与页面已有全局名称冲突。
每次创建主文档时,注册项都会在 window_ready 信号和页面脚本执行前安装。容器默认按引用共享;注销、分离或关闭注册表会同时撤销 JS 已缓存的引用。命名空间内保留 $bridge,提供 copy(value) 和保留字典键类型的 get/set 方法。所有桥接操作均应在 Godot 主线程执行。
属性
方法
create(namespace: String) → UltralightAPI staticget_namespace() → String constis_closed() → bool constregister_function(name: String, function: Callable, options: UltralightBindingOptions = null) → UltralightResultregister_async(name: String, handler: Callable, options: UltralightBindingOptions = null) → UltralightResultregister_object(name: String, object: Variant, options: UltralightBindingOptions = null) → UltralightResultunregister(name: String) → voidattach(view: Object) → UltralightResultdetach(view: Object) → voidclose() → void
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、撤销代理并清除注册定义。可重复调用;关闭后不能再次注册或附着。