我正在尝试使用 phonegap 插件和 GCM(Google Cloud Messaging)服务为我的 Android 应用程序集成推送通知。我基本上已经按照本教程在客户端的所有步骤,http://devgirl.org/2013/07/17/tutorial-implement-push-notifications-in-your-phonegap-application/通过注册设备phonegap 插件。
我已经通过 git phonegap 本地插件添加了 phonegap 插件,如上述教程的“第 1 部分:配置您的应用程序以使用 PushPlugin”。
在 index.js 文件中,我添加了上述教程“第 2 部分:向 Google Cloud Messaging 服务注册应用程序”中提到的以下方法。
successHandler: function(result) { alert('Callback Success! Result = '+result) }, errorHandler:function(error) { alert(error); }, onNotificationGCM: function(e) { switch( e.event ) { case 'registered': if ( e.regid.length > 0 ) { console.log("Regid " + e.regid); alert('registration id = '+e.regid); } break; case 'message': // this is the actual push notification. its format depends on the data model from the push server alert('message = '+e.message+' msgcnt = '+e.msgcnt); break; case 'error': alert('GCM error = '+e.msg); break; default: alert('An unknown GCM event has occurred'); break; } }
为了从应用程序服务器发送通知,我使用 HTTP POST 到https://android.googleapis.com/gcm/send,请求正文为 json 格式。
{
“registration_ids” : ["APA....."],
“data” : {
“title” : “My Title”,
“message” : “My Msg”,
“msgcnt” : “1"
}
}
我在我的设备上正确接收通知。我不确定我在代码中缺少什么,但我遇到了这些问题。
在我设备上的通知区域中,当多条消息一个接一个地发送时,我只会看到最后一条消息。看起来最后一条消息覆盖了旧消息。我希望所有警报在发送时一个接一个地列在设备上。
设备锁定时,通知不会出现在屏幕顶部。
我该如何解决这些问题?我是移动开发的新手,非常感谢您的帮助。提前致谢!