gpt4 book ai didi

node.js - 如何从 Meteor 应用程序发送 iOS 推送通知?

转载 作者:搜寻专家 更新时间:2023-10-31 22:17:34 24 4
gpt4 key购买 nike

我未能找到有关从 Meteor 应用程序发送推送通知的综合教程。我知道 Meteor 使用 node.js 运行,所以我一直在关注这个被高度引用和推荐的教程 https://blog.engineyard.com/2013/developing-ios-push-notifications-nodejs但无济于事;部署我的应用程序后,它会上传,但网站随后没有响应(如果部署没有错误,我看不出问题出在哪里,尽管我认为这与我组织文件的方式有关)。

我已经按照教程的说明正确下载并加载了所有证书。我已经使用他们的示例应用程序来正确获取我的测试设备的 ID。鉴于 Meteor 的文件夹配置,我只是无法弄清楚在哪里正确放置其他文件和依赖项。它与教程中的结构有何不同(换句话说,这个结构应该放在我的应用程序的 .meteor 文件夹内的文件夹内)?

我认为最重要的问题是 Meteor 的应用程序结构与普通 Node.js 应用程序不同,因此我需要将这些证书和依赖项放在特定文件夹中,而不仅仅是带有 的主应用程序文件夹application.htmlapplication.jsapplication.css

最佳答案

我们使用 apn npm 包与我们的 Meteor 应用程序。我们查看了 apnagent(因为相同的教程),但由于它更受欢迎而选择了 apn。虽然 apnagent 也应该在您的 Meteor 应用程序中正常工作,但您可能想尝试 apn 只是为了排除故障。

我们像这样在服务器端设置它......

var apn = Meteor.require("apn"),
path = Npm.require('path'),
apnOptions = Meteor.settings.apnOptions || {},
alertSound = apnOptions.sound || "alert.aiff",
apnConnection

// default apn connection options
apnOptions = _.extend({
cert: path.join(appRootPath, "private", "cert.pem"),
key: path.join(appRootPath, "private", "key.pem"),
}, apnOptions)
apnConnection = new apn.Connection(apnOptions)

...并像这样使用它:

  sendAppleNotifications: function (alert, url, pushIds) {
var note = new apn.Notification()

// expires 1 hour from now
note.expiry = Math.floor(Date.now() / 1000) + 3600
note.sound = alertSound
note.alert = alert
note.payload = {'url': url}

_.each(pushIds, function (token) {
var device = new apn.Device(token)
apnConnection.pushNotification(note, device)
})

return {success:'ok'}
}, // end sendAppleNotifications

请注意,Meteor.require 是由 npm meteor 包启用的,您可以阅读有关 here 的内容.或者,您可以将使用 apn 包的代码放在您自己的 Meteor 包中,并将 Npm.require 用作 @GeoffreyBooth。建议。

==

2015 年 6 月 20 日 - 更新

我最近回答了一个关于设备 token 的问题;希望这些资源对您有所帮助:

关于node.js - 如何从 Meteor 应用程序发送 iOS 推送通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22598009/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com