cordova - 将通知推送到设备状态栏

时间:2016-04-09 08:48:49

标签: cordova

我正在尝试将通知推送到设备状态栏(例如,当您收到短信时)http://developer.android.com/guide/topics/ui/notifiers/notifications.html

回到我使用https://github.com/nremond/phonegap-plugins-official/tree/master/Android/StatusBarNotification

的旧手机时代

在某些升级过程中,它停止了工作。

现在我想让它再次运作 - 我在网上搜索,所有我能找到的是一些破碎的代码,不推荐的插件,还有一半是回答的问题。

有人可以提供一个体面的例子来实现它吗? 即点击按钮并在设备通知栏中显示字符串的示例。

请提供包括以下内容的端到端解决方案:

  • 使用哪个插件
  • 你如何安装/配置他们

某个插件要求提供一个神秘的SENDER_ID,它应该“映射到Google Developer Console中的项目编号”(例如https://github.com/phonegap/phonegap-plugin-push/blob/master/docs/INSTALLATION.md)。

请解释这是什么以及我如何得到它。

请提供Cordova解决方案(不仅仅是电话间隙)。

请解释android / ios怪癖。

10倍。

2 个答案:

答案 0 :(得分:1)

不推荐使用最新的推送通知插件https://github.com/phonegap-build/PushPlugin。您可以使用工作推送通知,直到最新插件的问题得到修复。 https://github.com/phonegap/phonegap-plugin-push/releases/1.5.2 我试过这个。它的工作完美无缺。 从上面的位置下载插件,然后使用cordova plugin add *Location of the Locally downloaded plugin*

将插件添加到项目中

可以通过通知(调用)通知来显示状态栏上的推送通知。

请参阅:https://github.com/phonegap/phonegap-plugin-push https://github.com/phonegap/phonegap-plugin-push/blob/master/docs/API.md

从上面提供的位置下载插件并在本地安装插件。 Push Api具有init,register,onNotification,onRegister事件。

push.on('registration', function(data) {
console.log(data.registrationId);
});

可以在调用通知时使用此注册ID。

push.on('notification', function(data) {
console.log(data.message); // Display message data.

});

有几种发送推送通知的方法。我在这里使用gcm-server通知。

创建新文件

var gcm = require('node-gcm');
var message = new gcm.Message();
//API Server Key
var sender = new gcm.Sender('AIzaSyCDx8v9R0fMsAsjoAffF-P3FCFWXlvwLhg');
var registrationIds = [];
// Value the payload data to send...
message.addData('message',"\u270C Peace, Love \u2764 and PhoneGap \u2706!");
message.addData('title','Push Notification Sample' );
message.addData('msgcnt','3'); // Shows up in the notification in the status bar
message.addData('soundname','beep.wav'); //Sound to play 
message.timeToLive = 3000;

// At least one reg id required
registrationIds.push('APA91bwu-47V0L7xB55zoVd47zOJahUgBFFuxDiUBjLAUdpuWwEcLd3FvbcNTPKTSnDZwjN384qTyfWW2KAJJW7ArZ-QVPExnxWK91Pc-uTzFdFaJ3URK470WmTl5R1zL0Vloru1B-AfHO6QFFg47O4Cnv6yBOWEFcvZlHDBY8YaDc4UeKUe7ao');

sender.send(message, registrationIds, 4, function (result) {
   console.log(result);
});

请参阅http://devgirl.org/2013/07/17/tutorial-implement-push-notifications-in-your-phonegap-application/以清楚了解gcm-server发送通知。 这将在设备上显示通知。

我希望这会对你有所帮助。

答案 1 :(得分:0)

我无法回答有关状态栏的信息,因为我想您想在打开应用程序时查看它。 关闭应用程序后,我想您已经知道,通知由通知中心中的系统管理。

关于SenderID的配置,不再需要此配置。如果您仍在使用它,并且想尝试设置带有推送通知的cordova应用程序,建议您看看this Guide,它基于一项还有免费计划的服务。它具有适用于iOS和Android的完整指南

还有一个video,它逐步说明了如何配置通知。最后,它们显示了如何在下拉菜单中显示消息。如果这是您要寻找的东西,我想可能是适合您的