关于消息通知的系统设计

关于消息通知的系统设计

通知并非一件新鲜事,门铃声、电话铃声、汽车喇叭都可以当成一个通知。随着移动互联网发展,消息通知作为系统的基础能力,被疯狂乱用。对用户来讲,消息通知变得不那么重要了。但这并不代表可以忽视通知本身的作用和意义,那该如何更合理的设计通知呢?

什么是通知

通知是系统围绕着某个功能与用户进行沟通交流的重要方式,目的在于让用户了解新事件的信息动态。

  • 系统希望用户了解关注的信息(系统推送、升级等)

  • 触发器触发通知是用户行为的驱动器,从通知的角度来看,就是系统中有一个事情与你发生了交互行为,而形成一个通知。

  • 通知通知有两种类型:被动只读型、操作反馈型。无论何种通知,都可在通知中心中进行阅读并与之交互。

  • 其他通知方式除了红点提示外,还有常见的通知类型:计数、弹窗覆层、通知中心等。

通知的组成元素

系统内的通知在视觉上或许会有所不同。

  • 通知类型图标(消息对应的 Logo、Icon)

  • 文本(消息体,描述信息)

  • 是否已读(区别读取状态)

  • 发送时间(发送消息的时间点)

  • 动作按钮(已读、未读、删除等等操作按钮)

一条消息中,不要出现多个热区。意思是说我们对消息体可以有哪些触发动作。

通知的常见视图

两级视图中的通知用户在通知图标上看到红点提示,点击它会下钻到通知中心。

在消息中心,我们可以看到消息列表。如果是工单,资产类的通知,可以允许用户进入消息关联的工单、资产、知识库详情中去。

通知设计的基本原则

进行通知设计时,需要牢记的基本设计原则是它必须协助(而不是打断/阻碍)用户执行操作。

一个设计良好的通知模型会考虑到可访问性,并具有适应不同语言的灵活性。

所以要求通知的样式和行为必须清晰、简明和易用。

消息通知分类

  • 警告型(需要立即注意)
    工单升级通知、达到某个阈值通知

  • 错误型(需要立即采取措施)
    例如自动报表执行错误,小岛转单失败

  • 异常型(系统异常,某些功能无效等)
    通知发送失败提醒

  • 通知型(系统变更提醒)
    工单处理人变更,工单关闭通知,客户有最新的回复等等

对通知的关注级别和属性进行分类,设计师需要对所有通知进行分析,并划分关注级别和属性。需要思考的一些问题:

  • 触发点是什么?
    事件发送 - 工单发送变更,有新的信件备注,自动任务执行完成
    主动操作 - 服务人员密码修改,系统维护升级,资产导入,知识库文章推送

  • 触发什么类型通知?
    工单: 工单升级、处理人更新、工单关闭
    资产:创建,更新,链接变化,状态变化,指定维护人、入库、出库
    知识库:文章推送,文章更新

  • 重要程度如何?
    主要聚焦在主业务上。例如工单的相关通知。工单系统承载了事务的流转记录,依托于工单系统,完成了组织内部问题的流转和解决。有的客户会通过工单处理情况进行绩效参考,所以会着重这部分的通知。

    如遇到使用资产的客户,那么资产模块的变更通知又会是重心。

  • 在哪里出现以及如何出现?
    消息中心,页面布局的右上方。当有需要通知或提醒的客户的消息,会以提示框的形式进行提醒。或以消息红点作为有新消息提示。

  • 通知持续多久?
    提示信息的消息会持续几十秒。留个客户足够的时间去浏览信息,并对信息作出决策(是否进去消息相关的动作)。

    消息会在消息中心留有记录。很大概率上存在,消息推送过来的时候,我们不在 web 浏览的当前页中。我们通常会在某处来寻找未读的消息。

    消息分为:已读、未读。通过一种分类、形式上区分消息的已读未读。

    消息可以删除。客户对于已经没有价值和作用的消息,自主可以进行删除销毁。

  • 确保用户将通知视为提供价值,而不是打扰用户
    消息的提醒,不会影响当前用户的任何操作
    消息也不是给所有人都会发送,发送的选择是由管理员来完成配置。

为三个注意级别创建统一的配色和图标样式

  • 保持文案简洁易懂

  • 仔细考量发送什么、什么时候发送、发给谁

  • 对于高关注度的通知,尽可能考虑声音和触觉(振动)反馈

最后

这是我在工作中关于对消息设计的思考和沉淀,分享给大家,希望可以和大家交流。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
物业消息通知的Java代码可以包括以下功能: 1. 定义Message类:创建一个Message类,包含通知的相关属性,如消息的内容、发布时间、发送人等。 ``` public class Message { private String content; private String sender; private Date publishTime; // 构造方法 public Message(String content, String sender, Date publishTime) { this.content = content; this.sender = sender; this.publishTime = publishTime; } // getter和setter方法 // ... } ``` 2. 创建Notification类:创建一个Notification类,用于管理物业消息的发布和接收。 ``` import java.util.ArrayList; import java.util.List; public class Notification { private List<Message> messages; // 物业消息列表 public Notification() { messages = new ArrayList<Message>(); } // 发布通知 public void publish(String content, String sender) { Message message = new Message(content, sender, new Date()); messages.add(message); } // 接收通知 public List<Message> receive() { return messages; } } ``` 3. 测试代码:使用主函数进行测试,模拟物业消息的发布和接收过程。 ``` public class Main { public static void main(String[] args) { Notification notification = new Notification(); // 发布通知 notification.publish("小区将于下周开始进行管道维修,请住户们腾出工作空间。", "物业部门"); notification.publish("请注意:社区大门将于明天到下周一进行维修,暂时关闭。", "物业部门"); // 接收通知 List<Message> messages = notification.receive(); for (Message message : messages) { System.out.println("通知内容:" + message.getContent()); System.out.println("发布人:" + message.getSender()); System.out.println("发布时间:" + message.getPublishTime()); System.out.println("-------------------"); } } } ``` 以上是一个简单的物业消息通知的Java代码实现,可以在控制台上看到物业发布的通知内容、发布人和发布时间。可以根据实际需求进行更多的功能扩展,如根据消息类型进行筛选、消息的持久化等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值