Как передать токен устройства ios в AWS Pinpoint

Я не могу выполнять обмен прямыми сообщениями с помощью консоли AWS Pinpoint. Каждая попытка приводит к ошибке «Не удалось отправить push-уведомление на…», независимо от того, предоставляю ли я EndpointID или DeviceToken. Я предполагаю, что я не предоставляю действительный токен устройства.

В iOS deviceToken доставляется как объект NSData. Я могу вывести это значение на консоль в виде строки, используя [deviceToken description]. Это строка, которую я вставил в консоль прямого сообщения (после обрезки угловых скобок и внутренних пробелов). Является ли это ожидаемым способом создания строки из собственного устройства DeviceToken для обмена сообщениями AWS? Другое мое предположение, [[NSString alloc] initWithData:deviceToken encoding:NSUTF8StringEncoding], возвращает ноль.


person David U    schedule 19.04.2018    source источник


Ответы (2)


Обычно я бы сделал так:

deviceToken.map { String(format: "%02.2hhx", $0) }.joined()

Но после проверки веб-сайта документации AWS в основном они говорят распечатать токен устройства и удалить пробелы.

- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken 
{
    NSLog(@"deviceToken: %@", deviceToken); 
}

Посетите этот веб-сайт: Начало работы со службой push-уведомлений Apple.

person Francisco Pereira    schedule 25.04.2018

Объект Data уже содержит метод, позволяющий легко это сделать.

deviceToken.toHexString()

person Manan    schedule 25.04.2019