这是 Beta 探索课程,内容结构、实验步骤和示例可能会继续调整。
偏好管理 - 用户自定义通知偏好
产品需求
入职第六周,产品经理小李找到我:
“用户投诉说半夜被推送吵醒,能不能加个免打扰时段设置?”
“还有,有些用户只想收私信通知,不想收点赞通知,能不能让他们自己选择?”
我打开竞品 App,发现它们都有通知设置页面:
- 全局开关:是否接收推送
- 分类开关:点赞、评论、关注、私信、系统通知
- 免打扰时段:比如 23:00-07:00 不推送
- 推送频率:高、中、低
这些设置,我们都要支持。
数据模型设计
我设计了一个偏好设置表:
数据设计要点
- 核心是在
notification_preferences里保存业务事实,而不是把规则散落在应用逻辑里。- 索引服务于高频查询,重点是缩小扫描范围,而不是堆更多字段。
默认偏好策略
不同用户群体的默认偏好不同:
偏好检查逻辑
在发送通知时,检查用户偏好:
界面设计
简洁的设置界面:
┌─────────────────────────────────────┐
│ 通知设置 │
├─────────────────────────────────────┤
│ 推送通知 [开] │
│ │
│ 免打扰时段 │
│ 23:00 至 07:00 │
│ │
│ 通知类型 │
│ ● 私信通知 │
│ ● 评论通知 │
│ ● 点赞通知 │
│ ● 关注通知 │
│ ○ 系统通知 │
└─────────────────────────────────────┘
小结
这周我学到:
- 细粒度控制:全局、分类、渠道三个层次的开关
- 免打扰时段:处理跨午夜的情况
- 默认策略:根据用户类型设置不同默认值
- 缓存优化:高频访问,使用 Redis 缓存
偏好设置让用户完全控制自己的通知体验。
