--- id: mobile-client.offline.concept title: 移动端离线行为 type: concept feature: mobile-client scope: end-user locale: zh aliases: - 离线 - 没网 - 弱网 - 断网 - 离线能用吗 - 离线消息 - 移动端离线 - 收不到消息怎么办 related_tools: [] related_pages: [] prerequisites: [] negative: - 不支持「完全离线编辑后联网同步」(不是离线优先架构) - 离线时新发消息不会本地排队稍后投递,会直接报失败需用户重试 - 离线下文件不能预览(下载完成的文件可在系统文件管理器看) last_verified: v1.7.90 --- # 移动端离线行为 ## 定义 「离线」在 DooTask 移动端指设备无网络 / 网络不可达 DooTask 服务器的状态。App 不是离线优先架构(本地无完整数据副本),所以离线能力很有限。 ## 离线下能做什么 - **查看已加载的消息**:聊天页打开过的最近消息会缓存,可滚动查看(不能加载更早历史) - **查看任务列表的缓存**:最近访问的任务列表标题、状态可能仍能看到 - **预览已下载的文件**:之前点开下载到本地的文件能继续看 - **写消息草稿**:输入框打的字会保留,但发送会失败 ## 离线下不能做什么 - 新建任务 / 项目 - 发送消息(界面会提示发送失败 / 红色感叹号) - 加载会话历史 / 任务详情 - 预览未下载过的文件 - 接收新消息 / 推送 ## 网络恢复后 - **WebSocket 自动重连**:App 检测到网络回来后会尝试重连 - **新消息补拉**:成功重连后会拉取断网期间的新消息 - **发送失败的消息**:不会自动重发,用户需手动点重试 ## 离线推送 即使设备完全离线,服务端仍会通过 UMENG 通道下发推送([[mobile-client.notify.concept]]),iOS 设备会在恢复网络后由 APNs 投递。Android 则取决于厂商通道是否能在弱网下唤醒。 ## 弱网体验优化 - App 会自动重试关键请求(消息发送) - 切换 WiFi / 4G 时会重新握手 WebSocket - 后台切回前台会触发会话列表刷新 ## 不支持 - 不支持完整离线模式(无本地完整数据库) - 不支持离线后联网自动重发已失败的消息 - 不支持离线编辑任务详情(必须在线) - 不是离线优先产品:与某些离线优先的笔记类 App 不同,DooTask 设计以联网为前提