通过Azure通知中心,当源为Azure时,我收到通知时遇到问题。我按照本教程的步骤操作: 的 https://developer.xamarin.com/guides/android/application_fundamentals/notifications/remote-notifications-with-fcm/
此时,在遇到与nuget依赖项冲突的一些问题后,我通过Firebase控制台正确收到了通知。但是,Azure通知中心的“测试发送”选项似乎发送了消息,但设备未收到通知。
按照其他教程使用FCM服务发送Azure通知 https://docs.microsoft.com/en-us/azure/notification-hubs/notification-hubs-android-push-notification-google-fcm-get-started ,在Xamarin.Android中似乎无法实现某些步骤,例如在build.gradle中添加依赖项。
如何将这些更改合并到Xamarin.Android项目中?
答案 0 :(得分:1)
杰拉德,
从Azure Notification Hubs中的Firebase控制台和“测试发送”选项发送邮件时,您获取邮件内容的方式会有所不同。
正如您在Xamarin turorial with FCM中看到的,要获取消息内容,我们会执行以下操作:
public override void OnMessageReceived(RemoteMessage message)
{
Log.Debug(TAG, "From: " + message.From);
Log.Debug(TAG, "Notification Message Body: " + message.GetNotification().Body);
}
但是,使用“测试发送”时它不起作用,因为GetNotification()
将为空。
使用测试发送时,我们发送以下有效负载:
{"data":{"message":"Notification Hub test notification"}}
现在如何获取您的信息?如果您查看RemoteMessage
,您会注意到以下Data
媒体资源:public IDictionary<string, string> Data { get; }
。
您可以使用Data
属性检索邮件,如下所示:
public override void OnMessageReceived(RemoteMessage remoteMessage)
{
Log.Debug(TAG, "From: " + remoteMessage.From);
if (remoteMessage.Data.ContainsKey("message"))
{
Log.Debug(TAG, "Notification Message: " + remoteMessage.Data["message"]);
}
}