android - 无法在 Android 上使用 Xamarin Azure Messaging 组件注册推送通知模板

标签 android xamarin push-notification xamarin.android azure-notificationhub

我有一个 Xamarin Android 应用程序,它使用 Azure 通知中心和 Xamarin Azure Messenging 组件。如果我只是用一些标签注册设备,根据示例代码,一切正常。如果我使用命名模板注册设备,注册方法会抛出 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?

最佳答案

我相信您已经交换了参数 2 和 3。 试试这个:

hub.RegisterTemplate(registrationId, "alerts", alerts, tags.ToArray());

关于android - 无法在 Android 上使用 Xamarin Azure Messaging 组件注册推送通知模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29019603/

相关文章:

java - 使用带有 <a> 标签的 Html.fromHTML 不会着色!

android - 从 MvvmCross 中删除 System.ServiceModel

sqlite - Azure > 应用服务 > 移动应用 > 离线同步在我的 Android 上不起作用 (Xamarin.Forms)

ios - 推送通知在临时配置文件下不起作用 - 尝试了(几乎)一切

android - Android 手机上的延迟推送通知

java - String.getBytes() 和 Charset.encode() 之间的区别

android - 在 eclipse 中使用 maven android 原型(prototype)

push-notification - phonegap pushwoosh 插件 registerDevice 回调函数永远不会在 android 上触发

android - 为什么我们没有一个文件来打开 Android Studio 项目?

java - 代码适用于 Xamarin Android 但不适用于 Java (HttpPost JSON)