无法在 Android 上使用 Xamarin Azure 消息组件注册推送通知模板
Posted
技术标签:
【中文标题】无法在 Android 上使用 Xamarin Azure 消息组件注册推送通知模板【英文标题】:Unable to register push notification templates with Xamarin Azure Messaging component on Android 【发布时间】:2015-03-12 20:27:39 【问题描述】:我有一个 Xamarin android 应用程序,它使用带有 Xamarin Azure 消息传递组件的 Azure 通知中心。如果我只是使用一些标签注册设备,基于示例代码,一切正常。如果我使用命名模板注册设备,则注册方法会引发 NotificationHubException 异常。 Xamarin.ios 的等效代码可以正常工作。
此代码有效:
protected override void OnRegistered(Context context, string registrationId)
if (hub != null)
List<string> tags = new List<string>();
tags.Add("test1");
tags.Add("test2");
hub.Register(registrationId, tags.ToArray());
此代码引发异常
protected override void OnRegistered(Context context, string registrationId)
if (hub != null)
List<string> tags = new List<string>();
tags.Add("test1");
tags.Add("test2");
var alerts = "\"data\":\"message\":\"$(message)\",\"title\":\"$(title)\"";
hub.RegisterTemplate(registrationId, alerts, "alerts", tags.ToArray());
调用RegisterTemplate时,会抛出WindowsAzure.Messaging.NotificationHubException异常,包如下
<Error>
<Code>400</Code>
<Detail>Encountered unexpected character 'a'. TrackingId:bcecaffa-XXXX-XXXX-XXXX-XXXXXXXXX,TimeStamp:3/12/2015 3:55:06 PM</Detail>
</Error>
我调用 RegisterTemplate 是否正确?
【问题讨论】:
我想使用这个 registerTemplate 方法,但我没有得到第一个参数'registrationId',你能告诉我应该在第一个参数中发送什么吗?是 GCM 注册 ID 还是任何其他设备 ID? 【参考方案1】:我相信你已经交换了参数 2 和 3。 试试这个:
hub.RegisterTemplate(registrationId, "alerts", alerts, tags.ToArray());
【讨论】:
谢谢,这就是问题所在。以上是关于无法在 Android 上使用 Xamarin Azure 消息组件注册推送通知模板的主要内容,如果未能解决你的问题,请参考以下文章
对于Xamarin Android,我无法处理点击事件的后台通知
Xamarin - 无法通过 Android(和 iOS)访问本地 api
Xamarin.forms,Android 部署问题。应用程序无法在模拟器和物理设备上部署