在Xaramin和Azure Notification Hub中注册用户标签

时间:2017-07-29 22:18:20

标签: azure xamarin xamarin.android azure-notificationhub

我正在尝试向我的Xamarin Forms应用中的特定用户执行推送通知的POC。

我的所有文档都存在问题,因为很多参考GCM现已弃用,但尚未更新到Firebase,并且专门与Azure Notification Hub集成。

我的目标是:

  1. 当我的应用加载时,它会在Azure中注册设备。
  2. 我有一个Azure功能,它会将消息传递给Notifcation Hub以发送给特定用户。
  3. 根据我收集的内容,我可以使用标签将消息发送给特定用户(为每个设备创建一个标签),但我无法看到如何在Xamarin中为用户创建标签。我正在使用Microsoft.WindowsAzure.MobileServices,但它似乎没有处理标签。

    我也看过Azure Messaging component但是在一年之内没有被触及,有很多关于它不起作用的抱怨,我不确定如何在Visual Studio中使用该组件。

    我已经看了一下移动应用程序,但不确定我是否真的需要这个。我希望因为这是一个POC我不需要部署和额外的web api来处理这个问题,我只是希望将设备ID(或安装ID)传递给通知中心并使用它。

    非常感谢任何正确方向的提示。

    感谢

1 个答案:

答案 0 :(得分:2)

中注册推送通知时

Andoid:

public class PushHandlerService : GcmServiceBase 
{
.....
var tags = new List<string>() { "deviceID" }; // create tags if you want
var hubRegistration = Hub.Register(registrationId, tags.ToArray());
.....
}

的iOS:

public override void RegisteredForRemoteNotifications(UIApplication application, NSData deviceToken)
{
......
                NSSet tags = new NSSet(new string[] { "deviiceID" }); // create tags if you want
                this.Hub.RegisterNativeAsync(deviceToken, tags, registerError =>
                {
                    if (registerError != null)
                    {
                        Console.WriteLine($"Error registering {registerError}");
                    }
                });
......
}

更多信息:

https://docs.microsoft.com/en-us/azure/notification-hubs/xamarin-notification-hubs-ios-push-notification-apns-get-started

https://docs.microsoft.com/en-us/azure/notification-hubs/xamarin-notification-hubs-push-notifications-android-gcm