通知类型
本地通知以及远程推送通知
本地通知是由应用本身在设备上触发的通知,不需要依赖外部服务器。它们通常用于应用内部的提醒、定时任务或用户交互。
远程通知:设备获取一个唯一的 Token,服务器使用这个 Token 向设备发送通知
配置设置
安卓配置:
安卓:配置 Firebase Cloud Messaging (FCM) 凭证
苹果:配置 Apple Push Notification Service (APNs) 凭证
配置参考下面的视频和文档一步步来
安卓使用的谷歌服务,要在有谷歌服务的手机上操作,使用远程:
teamviewer 密码:A1234678@9@
分析需求
-
营销通知:在远程营销控制台编辑可以发送消息推送到特定用户上面,用户点击这个通知的逻辑应该怎么设计?
-
生歌成功发送通知
expo远程服务推送消息测试链接:expo.dev/notificatio…
需求设计
表设计:设备表,一个用户对应多个设备
CREATE TABLE devices (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
user_id BIGINT NOT NULL, -- 用户ID
device_token VARCHAR(255) NOT NULL, -- 设备推送令牌
device_type VARCHAR(50), -- 设备类型(可选:iOS/Android)
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
INDEX idx_user_id (user_id), -- 用户ID索引
INDEX idx_device_token (device_token) -- 设备令牌索引
);
保存用户-设备的接口,用户入参是设备的token,然后根据current_user: dict = Depends(get_current_user),拿到用的id,进行保存
在营销后台可以给所有用户发通知消息,需要给所有用户的所有设备id发送消息,所以这个是一个后端接口:发送全体消息接口
在营销后台可以给特定用户发送通知消息,即传入用户id,后端根据用户id查出对应的设备id,然后给所有的这些设备id发送消息,这是一个后端接口:给特定用户发送消息
其他
角标问题的处理
用户登录后,将设备id和用户id保存到对应的设备表中,一个设备对应一个用户 参考文档和视频: