跳到主要内容

推送通知

Firebase 云消息传递 (FCM)

此模板预先配置了 Firebase 云消息传递。如果您更喜欢使用 OneSignal,请使用本页最后一部分中的说明。

开箱即用,该应用程序会订阅与支持的新闻类别相对应的主题,例如healthsciencesportsfood等等。

触发通知 📬

使用 Firebase 云消息传递 REST API 触发通知

  • 首先,在 Google OAuth 2.0 Playground 中生成(必需的)访问令牌。

  • Firebase 云消息传递 API v1 下选择 https://www.googleapis.com/auth/firebase.messaging 作用域,然后单击 授权 API

  • 然后,使用有权访问相应 Firebase 项目的 Google 帐户登录,然后单击 将授权码交换为令牌

  • 使用以下 cURL 语法向主题发送消息

curl -X POST -H "Authorization: Bearer <ACCESS_TOKEN>" -H "Content-Type: application/json" -d '{
"message": {
"topic" : "<TOPIC-NAME>",
"notification": {
"body": "This is a Firebase Cloud Messaging Topic Test Message!",
"title": "Test Notification"
}
}
}' https://fcm.googleapis.com/v1/projects/<PROJECT-ID>/messages:send HTTP/1.1
注意

在前面的示例中,将 <ACCESS_TOKEN> 替换为从 Google OAuth 2.0 Playground 生成的访问令牌,将 <TOPIC-NAME> 替换为所需的主题名称,并将 <PROJECT-ID> 替换为相应的 Firebase 项目 ID。

注意

确保您在物理设备上运行应用程序,以便接收 FCM 消息。

OneSignal

按照 OneSignal 的指南设置 OneSignal Flutter SDK。确保

  • 满足 OneSignal 文档中列出的所有集成要求。
  • 添加 OneSignal Flutter SDK 依赖项。
  • 在 Xcode 中添加 iOS 服务扩展。
  • 在 Xcode 中启用 push capability
  • 在代码库中设置 Android 的 OneSignal。
  • 在通知客户端包中初始化 OneSignal。
  • 将代码库中的 FCM 引用替换为相应的 OneSignal 基础设施
    • lib/main/bootstap/bootstrap.dart 中,将 FirebaseMessaging 替换为 OneSignal,并将 FireBaseMessaging.instance 替换为 OneSignal.shared 实例。
    • 在每个风味的 main.dart 文件中,将 notificationsClient 分配给 OneSignalNotificationsClient 的实例。
  • 运行应用程序并通过 OneSignal 发送测试通知。
    • 注意:iOS 推送通知仅在物理设备上测试时才有效.