所以我尝试为Xamarin.Android http://azure.microsoft.com/en-us/documentation/articles/partner-xamarin-mobile-services-android-get-started-push/运行此推送通知示例,并按照文档中的说明进行操作 - 我已经启动并运行了。项目的插入工作绝对正常,但推送通知拒绝工作。
这是我在Azure上推送的错误:错误:400 - 提供的通知有效内容无效。
其他人尝试在他们的设备上运行此示例并尝试推送通知吗?错误对我的情况没有太大帮助。
示例正在使用PushSharp。
我很感激任何帮助。谢谢你!
答案 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
}