右下角悬浮窗全局消息通知
应用场景
存在于全局的通知提醒弹窗,类似苹果右侧消息通知/云之家里的通知消息,由后台推送 触发此消息通知,不依赖用户手动触发操作
对于用户须知但重要程度没那么高的消息,用户需关注但不打断用户,不会自动消失
场景举例:标准补丁更新完成通知/新特性
特性应用:消息公告-悬浮窗展示
业务开发步骤
1、 创建NotificationBody类,设置appid、消息标题、消息内容、消息id、消息图标类型(info/error/success/warning)、添加按钮信息
NotificationBody notificationBody = new NotificationBody(); notificationBody.setAppId("bos"); notificationBody.setTitle("你有新消息需要处理"); notificationBody.setContent("这是一条测试全局消息提醒弹窗"); notificationBody.setNotificationId(UUID.randomUUID().toString()); notificationBody.setIconType(IconType.Info.toString()); //忽略按钮平台自动添加 NotificationBody.ButtonInfo detailButton = new NotificationBody.ButtonInfo(); detailButton.setKey("detail"); detailButton.setText("查看详情"); notificationBody.addButtonInfo(detailButton);
2、 创建消息处理类
public class MyNotificationClick extends AbstractNotificationClick { @Override public void buttonClick(ButtonClickEventArgs e) { this.getFormView().showMessage("调用方已收到全局消息通知点击事件,消息ID:" +this.getNotificationId() + "按钮key:" + e.getButtonKey() + ",消息标题:" +this.getNotificationFormInfo().getNotification().getTitle()); } }
3、NotificationBody设置消息处理类参数
//消息窗口按钮点击事件处理 notificationBody.setClickClassName("kd.bos.plugin.sample.notification.MyNotificationClick");
4、 组装界面参数,调用消息发送服务
//创建消息通知界面参数 NotificationFormInfo notificationFormInfo = new NotificationFormInfo(); notificationFormInfo.setNotification(notificationBody); //调用发送全局消息帮助服务方法 NotificationServiceHelper.sendNotification(Arrays.asList(RequestContext.get().getUserId()), notificationFormInfo);
示例代码
/** * 发送全局消息通知插件 * 演示如何发送一个全局消息通知弹窗 * * 案例设计 * 1、新建一个动态表单 * 2、添加一个按钮,标题为‘发送全局消息’,标识为btnnotificationsend * 3、界面插件,填写本插件 * 4、预览,点击‘发送全局消息’按钮,即进入本插件代码,发送测试消息 */ public class NotificationSendFormPlugin extends AbstractFormPlugin { private static final String KEY_NOTIFICATIONSEND = "btnnotificationsend"; /** * 添加事件监听:"点击发送全局消息通知"按钮点击事件 */ @Override public void registerListener(EventObject e) { super.registerListener(e); this.addClickListeners(KEY_NOTIFICATIONSEND); } /** * 事件处理:"点击发送全局消息通知"按钮点击事件 */ @Override public void click(EventObject evt) { Control source = (Control)evt.getSource(); if (StringUtils.equalsIgnoreCase(KEY_NOTIFICATIONSEND, source.getKey())) { this.send(); } } /** * 发送全局消息通知 */ private void send() { NotificationBody notificationBody = new NotificationBody(); notificationBody.setAppId("bos"); notificationBody.setTitle("你有新消息需要处理"); notificationBody.setContent("这是一条测试全局消息提醒弹窗"); notificationBody.setNotificationId(UUID.randomUUID().toString()); notificationBody.setIconType(IconType.Info.toString()); //忽略按钮平台自动添加 NotificationBody.ButtonInfo detailButton = new NotificationBody.ButtonInfo(); detailButton.setKey("detail"); detailButton.setText("查看详情"); notificationBody.addButtonInfo(detailButton); //消息窗口按钮点击事件处理 notificationBody.setClickClassName("kd.bos.plugin.sample.notification.MyNotificationClick"); // 自定义参数 Map<String,Object> params = new HashMap<>(); params.put("targetPage", "bill_test"); notificationBody.setParams(params); //创建消息通知界面参数 NotificationFormInfo notificationFormInfo = new NotificationFormInfo(); notificationFormInfo.setNotification(notificationBody); //调用发送全局消息帮助服务方法 NotificationServiceHelper.sendNotification(Arrays.asList(RequestContext.get().getUserId()), notificationFormInfo); } }
效果图
右下角悬浮窗全局消息通知
应用场景 存在于全局的通知提醒弹窗,类似苹果右侧消息通知/云之家里的通知消息,由后台推送 触发此消息通知,不依赖用户手动触发操作 对...
点击下载文档
上一篇:上传图片时会自动压缩图片大小下一篇:设计器开发商前缀校验提示增加开关
本文2024-09-23 00:22:51发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-139094.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章