mirror of
https://github.com/kuaifan/dootask.git
synced 2026-08-01 10:55:59 +00:00
68 lines
2.9 KiB
Markdown
68 lines
2.9 KiB
Markdown
---
|
|
id: mobile-client.notify.concept
|
|
title: 移动端推送通知
|
|
type: concept
|
|
feature: mobile-client
|
|
scope: end-user
|
|
locale: zh
|
|
aliases:
|
|
- 移动端推送
|
|
- 手机推送
|
|
- App 通知
|
|
- UMENG 推送
|
|
- 友盟推送
|
|
- 收不到手机通知
|
|
- 锁屏推送
|
|
- 后台推送
|
|
related_tools: []
|
|
related_pages: []
|
|
prerequisites:
|
|
- 已登录过 App 且设备别名已注册到友盟
|
|
negative:
|
|
- 推送通道走 UMENG(友盟),需服务端配置 AppKey / Master Secret,自部署默认未开启
|
|
- 国内 Android 推送依赖各厂商通道(华为 / 小米 / OPPO / vivo / 魅族),后台杀进程后到达率与设备绑定
|
|
- 推送内容受隐私设置影响:锁屏隐藏详情时只显示「您有一条新消息」
|
|
last_verified: v1.7.90
|
|
---
|
|
|
|
# 移动端推送通知
|
|
|
|
## 定义
|
|
移动端推送通知是 DooTask 服务端通过 UMENG(友盟)推送平台向已登录设备投递的消息提醒,即使 App 处于后台 / 锁屏 / 杀进程也能到达(取决于厂商通道)。区别于桌面端原生通知([[electron-client.notify.concept]]),属于完全不同的通道。
|
|
|
|
## 推送通道架构
|
|
- 用户登录后 App 调 `/api/users/umeng/alias` 把设备 token 与用户 ID 绑定
|
|
- 服务端在 `WebSocketDialogMsgTask` 中向离线 / 后台用户额外发起 UMENG 推送
|
|
- UMENG 把推送下发到 APNs(iOS)或各厂商通道(Android),最终弹到设备
|
|
|
|
## 触发推送的事件
|
|
- 新私聊 / 群聊消息
|
|
- @ 你的消息
|
|
- 任务相关:被分配、被 @、状态变更、任务即将超时 / 已超时定时提醒(由 task-alert「任务提醒」机器人私聊发送,详见 [[task.notify.concept]])
|
|
- 项目重要变更
|
|
- 系统公告 / 管理员推送
|
|
|
|
## 收不到推送的原因(排序)
|
|
1. **服务端未配置 UMENG**:自部署版本默认未填 AppKey,推送整体不可用
|
|
2. **App 未授权通知**:手机系统设置 → 「通知」→「DooTask」必须打开「允许通知」
|
|
3. **后台被系统杀死**:Android 厂商电池优化会把 App 列入限制,导致离线推送无法激活
|
|
4. **应用内免打扰**:DooTask 个人设置或单会话开了免打扰
|
|
5. **网络问题**:UMENG 服务器与手机的连接断开
|
|
|
|
## 提高到达率(Android)
|
|
- 「电池」→ 把 DooTask 加入「不限制 / 后台运行白名单」
|
|
- 「自启动管理」→ 允许 DooTask 自启动
|
|
- 「电池优化」→ 把 DooTask 设为「不优化」
|
|
- 部分品牌(华为)需在「应用启动管理」里手动启用所有开关
|
|
|
|
## 推送内容显示
|
|
- 通常显示「发送人 + 消息预览」
|
|
- 锁屏隐藏详情或群聊不显示发送人,可在系统通知设置调整
|
|
- 详情显示策略以服务端推送结构为准,App 不能单独配置
|
|
|
|
## 不支持
|
|
- 不支持脱离 UMENG 的 P2P 推送(架构上依赖)
|
|
- 不支持「按场景拆开关」(只能整体开 / 关)
|
|
- 见到推送但点开 App 没新消息,通常是 WebSocket 已经在线时推送延迟
|
|
- 详细收不到处理见 [[mobile-client.push-fail.faq]]
|