首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Rails发送IOS推送通知

从Rails发送IOS推送通知
EN

Stack Overflow用户
提问于 2014-06-09 13:19:07
回答 1查看 6.2K关注 0票数 5

我需要发送推送通知到IOS手机。

我使用apn_on_rails发送此通知。

我从IOS developer那里获得了我的pem文件。我对它做了以下配置

在config/configtran/*..rb中进行生产和开发

代码语言:javascript
复制
RAILS_ROOT, APN::App::RAILS_ENV='production'
configatron.apn.passphrase  = 'leo_123'
configatron.apn.port  = 2195
configatron.apn.host  = 'gateway.sandbox.push.apple.com'
configatron.apn.cert = File.join(Rails.root, 'config', ' apple_push_notification_development.pem')

然后,我根据文档创建了一个Notificationby。

在我运行以下命令之后,它处于理想状态并进行响应

从控制台

APN::App.send_notifications

使用rake RAILS_ENV=production rake apn:通知:传递

我在生产环境和开发环境中都尝试过这一点。折叠线之后它就没有反应了。我也没在日志里找到任何东西。

代码语言:javascript
复制
APN::App Load (0.1ms)  SELECT "apn_apps".* FROM "apn_apps"

我还没有在任何云服务器上托管这个应用程序。这个应用程序是否应该托管在任何云服务器中才能正常工作?

任何帮助都很感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-09 14:09:26

使用grocer gem更容易。

代码语言:javascript
复制
pusher = Grocer.pusher(certificate: "#{Rails.root}/lib/dev_cert.pem", # required
                       passphrase:  "XXXXXX",                         # optional
                       gateway:     "gateway.sandbox.push.apple.com", # optional
                       port:        2195,                             #optional
                       retries:     3)

feedback = Grocer.feedback( certificate: "#{Rails.root}/lib/dev_cert.pem", 
                                  passphrase:  "XXXXXX",                        
                                  gateway:     "feedback.sandbox.push.apple.com", 
                                  port:        2196,                     
                                  retries:     3)

 notification = Grocer::Notification.new(
    device_token:      push_id,
    alert:             message,
    badge:             3,
    sound:             "siren.aiff",         # optional
    expiry:            Time.now + 60*60,     # optional; 0 is default, meaning the message is not stored
    # identifier:        1234,                 # optional
    content_available: true                  # optional; any truthy value will set 'content-available' to 1
  )

  feedback.each do |attempt|
    puts "Device #{attempt.device_token} failed at #{attempt.timestamp}"
  end

  pusher.push(notification)
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24121197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档