稳定性:stable 的范围是 iframe 代理当前提供的 $on / $off 事件接口和已转发事件名。
调用方式与方法签名
instance.$on(eventName, callback): void
instance.$off(eventName, callback): void
事件
| 事件 | 数据 | 说明 |
|---|---|---|
reportMounted |
无 | 子页完成挂载;它同时用于 resolve mount |
reportFormAfterSubmit |
event.data.data |
表单提交后结果 |
reportFormSubmit |
event.data.data |
表单提交事件 |
beeReportBridge |
event.data.data |
报表脚本发出的业务桥接数据 |
printComplete |
event.data.data |
打印完成数据 |
unmount |
无 | 子页通知卸载,父页移除 iframe |
参数与默认值
同一事件可注册多个回调。$off(name, callback) 仅移除传入的同一个函数引用;当前实现不提供省略 callback 后移除全部监听器的约定。
返回值与异常
$on / $off 没有返回值。回调异常不会转成 ExportApi 错误码,业务应自行捕获。reportMounted 在 Promise resolve 同步流程中发出,调用方通常应以 mount resolve 表示首次挂载成功,而不是在 resolve 后再等待首次 reportMounted。
最小示例
const onBridge = (payload) => console.log("bridge", payload);
instance.$on("beeReportBridge", onBridge);
instance.$on("printComplete", (payload) => console.log("printed", payload));
// 清理业务监听:
instance.$off("beeReportBridge", onBridge);
iframe 模式差异
上述 emitter 由 iframe 代理创建。非 iframe mount 返回 Builder 实例,不能据此承诺同样的 $on / $off 外部事件契约。
相关 API
常见错误
$off 必须传注册时的原函数引用;内联创建一个新函数无法移除旧监听。页面销毁时还应调用顶层 api.unmount。
