消息系统相关的 API
插件之间,业务应用与插件之间存在复杂的交互,这种交互通过“政务浏览器”提供的消息系统来完成。
特别注意:
事件系统相关的API不能通过 api http服务进行调用,只能在政务浏览器中打开应用页面才可调用
页面发送消息,监听消息
所有页面可以通过zwexplorer.__appEventService.sendAppEvent(eventChannel,callback)发送消息。所有页面可以通过zwexplorer.__appEventService.onAppEvent(eventChannel,callback)接受消息。
消息的具体名称,携带的数据,由业务系统自行定义。
例如:从“政务浏览器”顶部工具栏“水牌插件”发起“暂停服务”消息时,水牌可以响应该消息,在界面上显示“暂停服务”; 业务系统也可以响应该消息,锁定屏幕;同理,业务系统发送“暂停服务”的消息时,水牌也可以收到该消息。
也可以从水牌控制器中发起暂停服务与恢复服务
//向水牌插件发送暂停服务消息, function sendMsg_1(serviceState) { console.log("开始发送消息"); zwexplorer.__appEventService.sendAppEvent('service_status_changed', { data: serviceState }, (arg) => { if (arg.code === 0) { alert(arg.msg); } else { alert(arg.msg); } }); }
页面监听消息代码如下
function listenAppEvent() { zwexplorer.__appEventService.onAppEvent('service_status_changed', (appEventArg) => { if (appEventArg.data) { $(".modal-mask").hide(); } else { let width = $(document).width(); let height = $(document).height(); $(".modal-mask").height = height; $(".modal-mask").width = width; $(".modal-mask").show(); } }) } $(function() { //启动页面监听 listenAppEvent(); });