作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
背景:一个 Rails 应用程序,在 Heroku 上使用 Postgres 数据库。使用 UIWebView 使其在 iOS 中成为“原生”。当尝试包含推送通知时,有诸如 APNS 之类的 gem。 , RPush和 Grocer ,等等。
但是他们需要设备 token 才能向其发送推送通知,并且需要将其链接到正确的用户 ID,以便我们将通知发送给正确的人。例如在使用聊天功能时。
据我所知,这些 gem 更多地用于向所有用户更大规模地推送通知。为了能够在特定点将它们发送给特定用户,我需要 token 与用户相对应。
据我所知,没有这方面的文档。我在想最简单的方法之一是 Swift 是否可以直接与 Postgres 数据库对话,看看谁登录了应用程序,然后将 token 分配给他们?
最佳答案
有一件事我要提前说,虽然这可能是显而易见的,但您必须将用户的设备 token 存储在您的 Rails 应用程序的模型中。以下是我通常的做法:
POST/user/1234/devices.json {token: "...xxx..."}
当您想向该特定用户发送推送通知时,您会做一些事情(使用 Rpush,尽管您可以为他们中的任何一个修改它),例如:
@user.devices.each do |device|
n = Rpush::Apns::Notification.new
n.app = your_rpush_app
n.device_token = device.token
n.alert = "Here's a pretty sweeeeeet message! Eh?"
n.data = {}
n.save!
end
这将导致一条消息被发送到每个用户设备!您显然可以将其调整为仅使用一个设备,允许多个操作系统等。但是,您明白了:)
关于ios - 在 Rails 中使用 RPush (APNs) 推送给特定用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35179227/
我是一名优秀的程序员,十分优秀!