【Dexo】收到了来自 L 站的系统消息推送

Eilgnaw 2026-07-21 17:44 1

首先感谢佬友开源的鸿蒙 L 站客户端 【ArkDO】什么?鸿蒙客户端支持推送L站的系统消息通知了?依旧滑滑滑 , 让我学到了如何接入 L 站的消息推送.


其实最初开发 Dexo 的时候就很想实现推送功能, 但一直觉得这个需要官方主动接入才行, 实在没想到还可以借助 Web Push (知识盲区)来实现.


看了佬友的鸿蒙客户端接入推送之后, 心痒难耐, 于是和 codex 一起努力给 Dexo 也接入了推送.


效果预览


















收到的第一条来自 L 站的推送 锁屏时隐藏正文 关注人发帖提醒

使用方式



  • 在登录后,切换到 我的-推送通知-开启通知

  • 同意 Dexo 请求的通知权限


实现原理




  • 客户端请求通知权限, 用户授权后获得 APNs Device Token, 同时在本地生成一组 Web Push 加密密钥(P-256 密钥对),并生成 auth。 私钥始终保存在设备本地。




  • 提交 APNs Device Token 到 中继(不存储该信息), 中继不保存该 Token,仅将其加密后嵌入 Endpoint 并返回给客户端。




  • 客户端携带 Endpoint , p256dh(公钥)auth 向 L 站 Web Push 服务端订阅通知




  • 消息推送到中继后, 中继解析 Endpoint 中的 APNs Device Token, 然后推送未解密的信息




  • 客户端收到 APNs 推送后,由 Notification Service Extension 使用设备本地保存的 私钥 解密通知内容,并展示给用户。




整个过程中,中继仅负责消息路由,不持有 Web Push 私钥,不解密通知内容,不保存 APNs Token,也无法获知用户身份或消息内容。


流程图



Dexo 主贴



本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容:

我的帖子已经打上 开源推广 标签: 是
我的开源项目完整开源,无未开源部分: 是
我的开源项目已链接认可 LINUX DO 社区: 是
我帖子内的项目介绍,AI生成、润色内容部分已截图发出: 是
以上选择我承诺是永久有效的,接受社区和佬友监督: 是

以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出

^-^
写在前面



开源地址


最新回复 (3)
  • JoeyYin 07-21 17:45
    1

    啊,原来Dexo是你写的啊啊啊,^-^

  • xuanxuan 07-21 17:48
    2

    佬友居然没发现吗,哈哈哈。




    我就说在l站能学习到东西。


    都是大佬啊,我将研究^-^你们的源码。


    good good study ,up up day

  • Eilgnaw 楼主 07-21 19:08
    3

    这次是确实学到新东西了,之前压根不知道还能这么搞。

* 帖子来源Linux.do
返回