适用于 Android 谷歌云消息 (GCM) 的 Azure 移动服务从不向设备发送通知
Posted
技术标签:
【中文标题】适用于 Android 谷歌云消息 (GCM) 的 Azure 移动服务从不向设备发送通知【英文标题】:Azure mobile service for Android Google Cloud message(GCM) never sents notification to device 【发布时间】:2014-05-28 04:07:32 【问题描述】:xamarian android 项目并不总是收到从 push.gcm.send() 触发的推送消息。广播接收者第一次只调用 onregister(),而不调用 onmessage()。 我的 php 服务器脚本与 https://android.googleapis.com 配合得很好,它调用了广播接收器的 onmessage()。同样具有 azure 移动服务的 Native android 项目使用 push sharp 客户端的行为相同,当 push.gcm.send() 在 azure 服务器中执行时,它不会调用 onmessage()。让我知道我做错了什么,我使用了完美的应用程序密钥,服务器密钥,项目编号,........下面是日志详细信息。我收到状态码 201。
日志条目详细信息:
信息
测试推送通知发送:APA91bELUme4gM35eHBH4dmxo7AVBkmVu6Gsown_8zrROb5SsKzHn7MgpypBirmmDDuyPlr8hRjBDRX2lBc_j9voAPYv2RotXiVTHMaXFRRADu0xNfrPk-G-bCkfsCO7Uv-OnPMW8bgmTHIX8u8exKpGxfSrFZvN8dEDAoC5iw isSuccessful:真, 状态码:201, 身体: '', 标题: '传输编码':'分块', '内容类型':'应用程序/xml;字符集=utf-8', 服务器:'Microsoft-HTTPAPI/2.0', date: '2014 年 5 月 27 日星期二 19:40:00 GMT' , md5: 未定义
输入脚本:
function insert(item, user, request)
request.execute(
success: function()
// Write to the response and then send the notification in the background
request.respond();
push.gcm.send(item.channel, item.text,
success: function(response)
console.log('Push notification sent: ', response);
, error: function(error)
console.log('Error sending push notification: ', error);
);
);
【问题讨论】:
【参考方案1】:请确保您的客户端代码与已完成的示例相匹配,并从此处替换适当的字段,以仔细检查您的测试是否正确:http://go.microsoft.com/fwlink/p/?linkid=331303&clcid=0x409
完整说明见:http://azure.microsoft.com/en-us/documentation/articles/partner-xamarin-mobile-services-android-get-started-push/
如果您在仔细检查后仍然遇到问题,请发送电子邮件至 toddreif@microsoft.com 并附上您的移动服务帐户名称。
【讨论】:
【参考方案2】:参考Migrate a Mobile Service to use Notification Hubs.
Microsoft 已升级移动服务,以推送由通知中心提供支持的通知。如果您在升级之前创建了移动服务,则不会受到影响。
根据响应 isSuccessful: true, statusCode: 201, body ... ,说明你的Mobile Service是新版本。
如果您希望不使用通知中心发送推送,不要使用 push.gcm.send,请改用以下代码 sn-p。
var legacyGcm = require('dpush');
legacyGcm.send(your_GCM_APIKEY, regId, item, function (error, response)
if (!error)
// success code
else
// error handling
);
【讨论】:
以上是关于适用于 Android 谷歌云消息 (GCM) 的 Azure 移动服务从不向设备发送通知的主要内容,如果未能解决你的问题,请参考以下文章
无需谷歌云消息(GCM)将通知从 PC 推送到 android