我在node.js中构建命令行应用程序并希望接收GCM推送通知(命令行应用程序将与iOS / Android应用程序使用的同一组服务进行交互,因此需要使用相同的通知服务。)
鉴于GCM可以在iOS上使用(因此不是特定于Android),我希望它也可以从node.js中使用。
我已经看过许多关于从node.js发送推送通知的文章,但是还没有找到关于在接收端使用node.js的任何内容。
答案 0 :(得分:12)
我认为如果你必须发送推送通知,ios和andriod然后fcm更好然后gcm使用这个
router.post('/pushmessage', function (req, res) {
var serverKey = '';//put server key here
var fcm = new FCM(serverKey);
var token = "";// put token here which user you have to send push notification
var message = {
to: token,
collapse_key: 'your_collapse_key',
notification: {title: 'hello', body: 'test'},
data: {my_key: 'my value', contents: "abcv/"}
};
fcm.send(message, function (err, response) {
if (err) {
res.json({status: 0, message: err});
} else {
res.json({status: 1, message: response});
}
});
});
答案 1 :(得分:2)
我认为不可能(以简单的方式)......
Android / iOS背后有一个与GCM通信的服务......
如果您尝试运行CLI工具,则需要在操作系统(Linux,Windows Mac)上实施服务,以便它可以接收通知。
答案 2 :(得分:2)
不强制仅依赖 GCM ,今天有许多软件包可用于发送 pushNotification 。
下面列出了两个节点程序包。
fcm-call -您可以从https://www.npmjs.com/package/fcm-node/
中找到文档let FCM = require('fcm-call');
const serverKey = '<Your Server Key>';
const referenceKey = '<Your reference key>'; //Device Key
let title = '<Your notification title here.>';
let message = '<Your message here>';
FCM.FCM(serverKey, referenceKey, title, message);
您的通知将在2-3秒内发送。
快乐通知。
答案 3 :(得分:1)
GCM针对设备令牌发送通知,这些令牌是在推送通知服务器注册时从iOS / Android设备生成的。如果您打算在没有设备令牌的情况下接收通知,则基本上是不正确的。
答案 4 :(得分:1)
我相信你可以使用服务工作者。
推送基于服务工作者,因为服务工作者在后台运行。这意味着只有时间代码才能运行推送通知(换句话说,只有电池使用的时间)是用户通过点击或关闭通知来与通知进行交互。如果您不熟悉它们,请查看服务工作者介绍。当我们向您展示如何实现推送和通知时,我们将在后面的部分中使用服务工作者代码。
所以基本上有一个等待推送的后台服务,那就是你要构建的东西。
两种技术
推送和通知使用不同但互补的API:当服务器向服务工作者提供信息时调用push;通知是向用户显示信息的服务工作者或网页脚本的操作。
self.addEventListener('push', function(event) {
const promiseChain = getData(event.data)
.then(data => {
return self.registration.getNotifications({tag: data.tag});
})
.then(notifications => {
//Do something with the notifications.
});
event.waitUntil(promiseChain);
});