Azure日志显示:"提供的通知有效负载无效"官方Xamarin.Android样本

时间:2014-07-22 06:54:50

标签: azure xamarin.android azure-mobile-services pushsharp

所以我尝试为Xamarin.Android http://azure.microsoft.com/en-us/documentation/articles/partner-xamarin-mobile-services-android-get-started-push/运行此推送通知示例,并按照文档中的说明进行操作 - 我已经启动并运行了。项目的插入工作绝对正常,但推送通知拒绝工作。

这是我在Azure上推送的错误:错误:400 - 提供的通知有效内容无效。

其他人尝试在他们的设备上运行此示例并尝试推送通知吗?错误对我的情况没有太大帮助。

示例正在使用PushSharp。

我很感激任何帮助。谢谢你!

1 个答案:

答案 0 :(得分:0)

这是我从后端服务器向Google Cloud Messaging发送推送通知的方式。

public async Task<bool> SendNotification(int id, int index, string from, string text, string tag)
{
    try
    {
        var payload = new
        {
            data = new
            {
                message = new
                {
                    // this part can be anything you want
                    id,
                    index,
                    from,
                    text,
                    when = DateTime.UtcNow.ToString("s") + "Z"
                }
            }
        };

        var json = JsonConvert.SerializeObject(payload);

        await _hubClient.SendGcmNativeNotificationAsync(json, tag);

        return true;
    }
    catch (ArgumentException ex)
    {
        // This is expected when an APNS registration doesn't exist.
        return false;
    }

然后在您的应用程序Intent Service中,您可以解析JSON&#34;消息&#34;:

protected override void OnMessage(Context context, Intent intent)
{
    var message = intent.Extras.GetString("message");

    // message is JSON payload
    // { "id":"someid", "index":"1", "text":"some text","from"... }

    var json = JObject.Parse(message);
    var id = json["id"].ToString();
    var index = json["index"].ToString();
    var text = json["text"].ToString();
    var from = json["from"].ToString();
    var when = DateTime.Parse(json["when"].ToString());

    // do whatever you want with your values here

}
相关问题