Discourse 移动推送——用于移动应用的 FCM 推送通知

我开发了一个新的 Discourse 插件,用于通过 Firebase Cloud Messaging (FCM) 向原生 Android/iOS 应用发送推送通知。

为什么?

现有的 discourse-fcm-notifications 插件提供了类似的功能,但它已不再与当前版本的 Discourse 保持同步。在当前的 Discourse 安装环境中安装该插件会产生警告。

我在其他测试人员的设备上尝试运行旧插件时遇到了困难。与其尝试更新它,我决定从头开始构建一个新的实现。

功能

  • 面向原生移动应用的 FCM 推送通知
  • 每个用户支持多台设备
  • 通过 API 进行设备注册和移除
  • 深度链接(Deep links)至相关的 Discourse 主题、帖子或聊天
  • 自动移除无效/过期的 FCM 令牌
  • 针对 Firebase 临时故障的重试处理
  • 可选的隐私模式,使用通用的通知内容
  • 管理员诊断和测试通知工具
  • 利用 Discourse 现有的通知系统和用户偏好设置

该插件旨在提供 Discourse 与原生移动应用之间的传输层;Discourse 仍然负责决定用户接收哪些通知。

AI 辅助开发

该插件的很大一部分是在 AI 的辅助下开发的。我在这里发布它,部分原因是希望获得经验丰富的 Discourse 开发者的反馈,并找出任何需要更改或改进的地方。

它采用 MIT 许可证。

欢迎反馈、错误报告和建议。

2 个赞

我很乐意分享我在为我的 Discourse 论坛开发的 Flutter 封装应用中是如何实现这一功能的。我目前只完成了 Android 端,还没有做 Apple 端。

1 个赞

你可能需要申请加入 @plugin_authors,以便在 Customization > Plugin 中发布此内容。

2 个赞

@Michael_Sandler 干得漂亮。我也在开发一款用于 Discourse 的 Flutter 应用,刚刚已经上线了。我实现的推送通知方式与你略有不同,它无需安装任何插件,虽然推送不是即时到达的。

我想,等使用这款应用的用户数量增多后,我也会采用你的方案。

欢迎来看看,我很期待你的反馈,也许我也可以直接使用你的实现方案。