我一直在尝试向部署在iOS和Android上的Phonegap应用程序发送推送通知。 iOS 工作正常,但当我从 PubNub、Parse 和 Amazon SNS 的任何开发控制台发送推送通知时,Android 不起作用。
我确实验证了如果我使用 GCM API 可以发送通知,所以我使用的是正确的发件人 ID、API 密钥和设备令牌。
我在 PubNub 控制台上没有看到任何错误。在解析仪表板上,我看到推送通知已发送。Amazon SNS 上没有错误。但是,设备上没有推送通知。
我没主意了。提前感谢您的任何有用建议。
在PubNub的帮助下,弄清楚了问题所在。PubNub 上的示例具有以下格式
{"pn_gcm": {
"data" : {
"GCMSays" : "hi" }
}
}
但所需的格式是
{"pn_gcm": {
"data" : {
"message" : "hi" }
}
}
确认使用 PubNub 控制台后,我在代码中更新了我的 JSON 对象,它就像一个魅力。
使用 Parse 控制台,我尝试创建具有类似格式的 JSON 对象,但它不起作用。还没有尝试过亚马逊SNS。
本教程说明了如何使用 PubNub 配置 Android GCM: http://www.pubnub.com/docs/java/android/tutorial/google-push-notification.html
developer] Parse 不为 PhoneGap 提供第一方支持;他们的产品只适用于 JS SDK,而 JS SDK 没有原生的 Push 支持。我在上一个问题中描述了让 Parse 识别您的设备以任意语言推送的必要条件。但是,您可能正在接收推送,但未创建通知。
在Android中(与iOS,WinRT或WinPhone不同),推送并不一定意味着"通知"。来自 Parse 的原生 android SDK 会自动为您创建此功能。您需要创建自己的 BroadcastReceiver 并连接它以处理 Play 商店应用发送推送的意图。您可以在我们的 Android 推送教程中找到这些内容。在 BroadcastReceiver 中,您需要在接收推送时创建并注册自己的通知对象。
对于 Firebase 云消息传递,我必须使用此结构来接收托盘通知:
"pn_gcm": {
"notification": {
"title": push_title,
"text": push_message
}
},