【问题标题】:I am using `fcm` gem to send push notification it is working fine for android but not for IOS我正在使用 `fcm` gem 发送推送通知,它适用于 android 但不适用于 IOS
【发布时间】:2019-10-27 07:45:04
【问题描述】:

我正在开发需要向 IOS 设备发送通知的后端。我已经正确配置了 APN 证书密码和 Firebase 上的所有内容,但有时通知仍会从简单脚本发送到 IOS,但有时它不会发送。但是在 Ruby on rails 上它永远不会发生。我已正确检查并包含所有文件。仍然遇到这个问题。

以下是我为发送通知而编写的脚本,它从用户表中获取设计令牌。

user = User.find(86)
  devises = user.devises
     devises.each do |d|
     response = send_notification(title, body, d, action, type)
  end

  fcm = FCM.new("my_fcm_server_key_log_key_from_firebase")
  registration_ids = ["#{devise.token.to_s}"]
  options = { "data": {
      "title": title,
      "body": body,
      "msg_action": action,
      "msg_type": type,
    },
       "badge": 1,
       "alert": "dasdas",
       "sound": "default" 
}
  response = fcm.send(registration_ids, options)
    puts response.inspect

响应成功,但仍然无法到达手机,但是当我对所有内容进行硬编码并使用简单脚本时,它也可以从服务器和本地系统正常运行,但在 Ruby on rails 中却不行。在 Android 上它运行良好,没有任何问题。即使在几个小时后使用简单的脚本 IOS 也停止使用简单的 ruby​​ 脚本。

如果您有任何适用于 ruby​​ on rails 的工作示例,请告诉我。

【问题讨论】:

  • 与 Rails 问题无关,请在 firebase 和 ios app 中检查 ios 配置
  • 当我使用 firebase 发送通知时,它会从他们的仪表板正确发送。
  • 我遇到了同样的问题,在 firebase 控制台工作,但不会从 rails 发送 ios。你有没有发现问题?
  • 我回答了我为解决问题所做的工作,但主要是测试和尝试,库中没有问题,只是推送通知的格式,开发人员上传到 FCM。

标签: ruby-on-rails firebase firebase-cloud-messaging apple-push-notifications


【解决方案1】:

我必须在 FCM 上为 IOS 应用上传认证文件,通常是开发者许可证 p12 或 p8 文件,需要在您的新应用项目上上传。

我必须更改我为 IOS 发送的格式,现在我有条件,如果它是 android,而不是有不同的格式,我有 IOS,而不是我放了不同的格式,只有很小的变化。

if devise.platform == "iOS"
   options = { "notification": {
     "title": title,
     "body": body,
     "msg_action": action,
     "msg_type": type,
      },
        "badge": 1,
        "alert": "dasdas",
        "sound": "default" }
    else
      options = {
        "data": {
        "title": title,
        "body": body,
        "msg_action": action,
        "msg_type": type,
        "click_action": ".DashBoardActivity",
        },
      }
  end

另一点需要注意的是你检查了你的应用程序日志,有时当应用程序没有运行时,你会收到推送通知,但如果应用程序正在运行,那么你不会得到任何显示,但在后台你会收到推送通知,您必须使用 IOS 的应用程序编码来处理。我添加了badge, alert, sound 这些是针对 IOS 的。

给出了解释@Brad发布的cmets的答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-26
    • 1970-01-01
    • 1970-01-01
    • 2013-03-28
    • 1970-01-01
    • 2012-04-12
    相关资源
    最近更新 更多