Javascript Phonegap PushNotification,如何将我的节点推送服务器与Phonegap一起使用?

Javascript Phonegap PushNotification,如何将我的节点推送服务器与Phonegap一起使用?,javascript,ios,node.js,cordova,Javascript,Ios,Node.js,Cordova,因此,我使用Phonegap,我使用: 所以,我安装了第一个插件,我可以得到我的手机令牌。之后,我在根目录中创建了一个节点server.js文件,其中包含: var apn = require('apn'); var token = "MY TOKEN"; var device = new apn.Device(token); var notification = new apn.Notification(); notification.expiry = Math.floor(Dat

因此,我使用Phonegap,我使用:

所以,我安装了第一个插件,我可以得到我的手机令牌。之后,我在根目录中创建了一个节点
server.js
文件,其中包含:

var apn = require('apn');

var token = "MY TOKEN";
var device = new apn.Device(token);

var notification = new apn.Notification();
notification.expiry = Math.floor(Date.now() / 1000) + 3600;
notification.badge = 1;
notification.alert = "This is a Push Notification=)";
notification.payload = {'prop': 'special value'};
notification.device = device;

var options = {
 gateway: 'gateway.sandbox.push.apple.com',
 cert: 'CER.pem',
 key: 'KEY.pem',
 passphrase: 'password'
}
var apnsConnection = new apn.Connection(options);
apnsConnection.pushNotification(notification, device);
当我在命令行中使用node server.js启动服务器时,我可以在手机上看到推送通知,所以一切正常

但我的问题是,我需要在代码中的不同位置发送推送通知(phonegap)。我该怎么做


当我的
server.js
运行时,如何从我的phonegap应用程序发送其他推送通知?

上面的代码可以收集在一起,并公开一个函数来多次调用它。例如,一个非常简单的实现是:

var apn = require('apn');
var options = {
    gateway: 'gateway.sandbox.push.apple.com',
    cert: 'CER.pem',
    key: 'KEY.pem',
    passphrase: 'password'
};
var apnsConnection = new apn.Connection(options);

module.exports.pushNotification = function(token, alert) {
    var device = new apn.Device(token);

    var notification = new apn.Notification();
    notification.alert = alert;
    notification.device = device;

    apnsConnection.pushNotification(notification, device);
};
假设您将此文件命名为“推送通知服务”。现在,在您的
server.js
中,您可以
要求使用刚刚创建的模块,并调用
pushNotification
函数:

var pns = require("./pns.js");

pns.pushNotification("MY TOKEN", "This is a Push Notification");
现在,当您执行
server.js
时,就得到了相同的函数。从这里,您可以将此函数拉入需要从Node.js端调用它的其他模块中


如果您需要从远程进程调用它,您可以查看web框架,如,并构建一个调用相同代码的API。然后可以将令牌和警报消息传递到此函数调用。这样做可能会将您的
server.js
变成一个运行的web服务器,它会侦听请求并按需发送推送通知。

有点晚了,但对于有相同问题的人,请查看此工具:

…它正是你想要的。它支持iOS和Android

在服务器上运行此操作,您的应用程序可以:通过发布到注册设备。设备存储在mongodb数据库中。通过向发布http请求,您可以向单个注册设备、子集或所有设备发送推送通知

玩得开心