消息系统相关的 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();
});