政务浏浏览器Demo

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