用户通知中心的内容如何生成?

问题不是消息如何推送这块,而是消息的内容和链接有什么优雅的生成方式?
例如sf.gg中的消息通知

图片描述

用户执行了某个行为后,不同的消息类型,内容和链接是怎么拼凑?
难不成在push到消息队列时,在代码中手动拼凑 这样的字符串:
"xxx回答了你的问题 <a href="xxx">title</a>"
然后这样硬生生塞进去?前端再直接读出来?
如果消息类型比较多(评论、回复、私信,系统等)时,有优雅的实现方式么?

阅读 3.8k
3 个回答

以面向对象的角度分析和设计,user,action, url以不同的field传递,拥有非常好的扩展性,而且前端局限性小

${name}['回答了你的答案','关注了你的问题','修改了你收藏的文章',...][xx.type]${title}
或者
${name}({aa:'回答了你的答案',bb:'关注了你的问题',cc:'修改了你收藏的文章',...})[xx.type]${title}
怎么样

我的做法是为每种类型设置一个模板
比如评论的模板是 {name}评论了你的文章{title}
回复的模板是 {name}回复了你的问题{title}
等等,到时候用户评论触发相关的模板,将占位符的内容填充进去生成一条通知信息

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Microsoft
子站问答
访问
宣传栏