Host API
host.js
的运行环境中,我们提供了一个全局变量 hostApi
,在 hostApi
上封装实现了相应的 API,以便实现与 Pixso 的交互,详细内容如下:
Event
hostApi 提供了 on
、 once
、 off
三个接口来注册、移除事件监听,目前支持的事件类型如下:
mounted
:host.js
加载后触发;beforeunmount
:host.js
卸载前触发,如:- 关闭配置有
host.js
的插件;
- 关闭配置有
- Pixso 退出设计模式;
type HostArgFreeEventType = "mounted" | "beforeunmount";
on
- type:
on(type: HostArgFreeEventType, callback: () => void): void;
on
方法允许注册特定事件的处理函数,当事件发生时会执行该回调函数
once
- type:
once(type: HostArgFreeEventType, callback: () => void): void;
once
方法允许注册特定事件的处理函数,当事件发生时会执行该回调函数。与 on
方法的区别在于,通过 once
方法注册的事件处理函数只会执行一次。
off
- type:
off(type: HostArgFreeEventType, callback: () => void): void;
移除通过 hostApi.on
或 hostApi.once
绑定的事件处理函数。
Sandbox-related
此分类下的接口只在插件下运行的 host.js
中有效,主要用于与插件的 sandbox.js
进行通信。
sandbox.postMessage
- type:
postMessage: (message: any) => void
由 host.js
向 sandbox.js
发送消息。
sandbox.onmessage
- type:
Function | undefined
监听 sandbox.js
向 host.js
发送的消息。
sandbox.on
- type:
on: (event: 'message', cb: (event: any) => void) => void
监听 sandbox.js
向 host.js
发送的消息。
sandbox.once
- type:
once: (event: 'message', cb: (event: any) => void) => void
监听 sandbox.js
向 host.js
发送的消息,回调函数运行一次后便移除监听。
sandbox.off
- type:
off: (event: 'message', cb: (event: any) => void) => void
移除通过 sandbox.on
或 sandbox.once
接口绑定的监听。
Others
showPluginDockAsync
- type:
showPluginDockAsync(): Promise<void>
显示插件坞。
setLibraryConfig
- type:
setLibraryConfig(config: Partial<LibraryConfig>): void
设置资源库相关 UI 显隐
interface LibraryConfig {
enabled_team_library: boolean; // 一键关闭团队资源库
enabled_ent_library: boolean; // 一键关闭企业资源库
enabled_team_left_component_panel: boolean; // 是否启用团队左侧组件面板
enabled_ent_left_component_panel: boolean; // 是否启用企业左侧组件面板
enabled_team_instance_replace: boolean; // 是否启用团队实例替换
enabled_ent_instance_replace: boolean; // 是否启用企业实例替换
enabled_team_style_replace: boolean; // 是否启用团队样式替换
enabled_ent_style_replace: boolean; // 是否启用企业样式替换
enabled_team_library_tab: boolean; // 是否启用团队资源库发布页
enabled_ent_library_tab: boolean; // 是否启用企业资源库发布页
enabled_team_library_publish: boolean; // 是否启用团队资源库发布
enabled_ent_library_publish: boolean; // 是否启用企业资源库发布
enabled_team_library_replace: boolean; // 是否启用团队资源库替换
enabled_ent_library_replace: boolean; // 是否启用企业资源库替换
enabled_library_missing_replace: boolean; // 是否启用缺失资源库替换功能
}