如何获取iOS设备的Azure Notification Hub RegistrationId?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何获取iOS设备的Azure Notification Hub RegistrationId?相关的知识,希望对你有一定的参考价值。

我正在将Azure Notification中心实施到跨平台Xamarin应用程序中。我唯一识别注册通知的每个设备的方式是临时存储azure分配给手机的RegistrationId。一旦用户登录,我就将RegstrationId和一些用户的独特特征发送给后端服务。 RegistrationId用于识别电话,然后用户的详细信息将作为标记通知的标签添加到该电话。

这适用于android,因为我需要做的就是获取registrationId如下:

var regID = hub.Register(token,tags.ToArray())。RegistrationId;

但是,ios的等效项不起作用,因为类SBNotificationHub不包含任何获取RegistrationId的方法。如何获取iOS设备的Azure RegistrationId?

谢谢。

答案

我相信你可以在RegisteredForRemoteNotifications类中的AppDelegate覆盖中获得设备ID,如this documentation中所述。

尝试将以下内容添加到AppDelegate类:

// Add to top of class file, outside of namespace
using Newtonsoft.Json.Linq;

// Add inside of class
public override void RegisteredForRemoteNotifications(UIApplication application,
NSData deviceToken)
{
    const string templateBodyAPNS = "{"aps":{"alert":"$(messageParam)"}}";

    JObject templates = new JObject();
    templates["genericMessage"] = new JObject
    {
        {"body", templateBodyAPNS}
    };

    // Register for push with your mobile app
    Push push = TodoItemManager.DefaultManager.CurrentClient.GetPush();
    push.RegisterAsync(deviceToken, templates);
}

我认为deviceToken是你在iOS中寻找的东西吗?

以上是关于如何获取iOS设备的Azure Notification Hub RegistrationId?的主要内容,如果未能解决你的问题,请参考以下文章

Android/iOS:如何使用 SAML 协议通过 Azure AD 为移动设备提供 SSO

如何在 Azure Notification Hub 中将 iOS 设备注册的到期日期设置为 31-12-9999 23:59:59?

Xamarin.iOS如何在注册到后端以获取推送通知后获取安装ID

Xamarin.iOS - 设备关闭时推送通知

Azure 流分析查询 - 获取所有设备的最后一个请求

Azure IoTHub:获取连接设备的 IP 地址/位置