Как получить регистрационный идентификатор центра уведомлений Azure для устройств iOS? - PullRequest
0 голосов
/ 31 января 2019

Я внедряю концентратор уведомлений Azure в кроссплатформенное приложение Xamarin.Я однозначно идентифицирую каждое устройство, которое регистрируется для уведомлений, путем временного сохранения RegistrationId, который Azure назначает телефону.После того, как пользователь вошел в систему, я отправляю RegstrationId и некоторые уникальные характеристики пользователя во внутреннюю службу.RegistrationId используется для идентификации телефона, а затем данные пользователя добавляются в этот телефон в качестве тегов для помеченных уведомлений.

Это работает на Android, так как все, что мне нужно сделать для получения регистрационного идентификатора, заключается в следующем:

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

Однако эквивалент для iOS не работает, так как класс SBNotificationHub не содержит никаких методов для полученияRegistrationID.Как получить этот регистрационный идентификатор Azure для устройств iOS?

Спасибо.

1 Ответ

0 голосов
/ 31 января 2019

Я полагаю, что вы можете получить идентификатор устройства в переопределении RegisteredForRemoteNotifications в классе AppDelegate, как указано в этой документации .

Попробуйте добавить следующее в свой класс 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?

...