我需要在我的应用程序中集成推送通知..我看了很多教程,但任何帮助我,因为我需要做一些更困难的事情。事实上,我需要系统在新闻将在数据库中发布时自动向所有用户发送推送通知。示例:这是我从数据库中获得的响应
{“news”:[{“id”:“36”,“type”:“news”,“title”:“这是Pune的测试”,“city”:“Pune”,“description”: “浦那城的测试报价”,“图片”:“http://www.saimobileapp.com/mobileappbackend/news/01.png”},{“id”:“35”,“type”:“news”, “title”:“offer for offer”,“city”:“Mumbai”,“description”:“test description”,“image”:“http://www.saimobileapp.com/mobileappbackend/news/IMG_0421.JPG “},{”id“:”31“,”type“:”news“,”title“:”new test“,”city“:”Mumbai“,”description“:”yes yes a test msg“,” image“:”http://www.saimobileapp.com/mobileappbackend/news/Chrysanthemum.jpg“},{”id“:”30“,”type“:”news“,”title“:”这是一个测试新闻“,”城市“:”孟买“,”描述“:”测试说明“,”图片“:”http://www.saimobileapp.com/mobileappbackend/news/1.jpg“}]}
这里我们有4条新闻。所以,如果我发布另一条新闻,它将是5,并且系统发送带有该新闻标题的推送......是否可能?如果是,我可以使用哪些服务?解析?还是一个phpserver? 谢谢
答案 0 :(得分:0)
是的,这是可能的。我正在使用node.js.您还需要创建APNS配置证书以使用此服务,并链接以了解如何创建APNS certificate。以下是APNS的示例代码:
var apn = require("apn")
var apnError = function(err){
console.log("APN Error:", err);
}
var options = {
"cert": "cert.pem",
"key": "key.pem",
"passphrase": null,
"gateway": "gateway.sandbox.push.apple.com",
"port": 2195,
"enhanced": true,
"cacheLength": 5
};
options.errorCallback = apnError;
var feedBackOptions = {
"batchFeedback": true,
"interval": 300
};
var apnConnection, feedback;
module.exports = {
init : function(){
apnConnection = new apn.Connection(options);
feedback = new apn.Feedback(feedBackOptions);
feedback.on("feedback", function(devices) {
devices.forEach(function(item) {
//TODO Do something with item.device and item.time;
});
});
},
send : function (params){
var myDevice, note;
myDevice = new apn.Device(params.token);
note = new apn.Notification();
note.expiry = Math.floor(Date.now() / 1000) + 3600; // Expires 1 hour from now.
note.badge = 1;
note.sound = "ping.aiff";
note.alert = params.message;
note.payload = {'messageFrom': params.from};
if(apnConnection) {
apnConnection.pushNotification(note, myDevice);
}
}
}
您可以在线找到node.js APNS服务器的许多示例代码。
使用PHP 通知在APNS中你可以发送标题"这是Pune"当用户收到这个"应用程序:didReceiveRemoteNotification:fetchCompletionHandler:"您的应用代理中的功能将被调用,您的应用将会打开。
您必须在应用中创建一个视图才能显示通知列表。用户将选择一个特定的通知,然后您从服务器获取所有新闻数据并将其显示给用户。