Как по-разному использовать токены устройства в iPhone?

StackOverflow https://stackoverflow.com/questions/1513580

  •  19-09-2019
  •  | 
  •  

Вопрос

В своем приложении я собираюсь использовать pushNotification.Итак, как в таком случае я могу использовать токены устройств по-разному?

Позвольте мне подробнее остановиться на этой стороне.

Всякий раз, когда я запускаю свое приложение в это время, будет сгенерирован токен устройства. Если я буду запускать приложение снова и снова на одном и том же устройстве, то оно будет генерировать один и тот же токен устройства или нет?

если он будет генерировать токены устройств, отличные от указанных в документации Apple, как он обрабатывается на стороне сервера?что именно нужно отправить со стороны клиента (т.е.Токен устройства или другие параметры) на сторону сервера и какой тип сценария используется на стороне сервера для этого?

если у кого-нибудь есть какое-либо решение, какой-либо фрагмент кода или какая-либо полезная ссылка, мы будем признательны.

Это было полезно?

Решение

Вот пример, не обязательно работающего кода:

- (void)sendProviderDeviceToken:(NSString *)tokenString {
    NSString *udid = [[UIDevice currentDevice] uniqueIdentifier];

    NSString *bundleID = [[NSBundle mainBundle] bundleIdentifier];
    UIRemoteNotificationType type = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];

    NSString *data = [NSString stringWithFormat:@"udid=%@&token=%@&id=%@&type=%i", udid, tokenString, bundleID, type];
    NSString *escapedData = [[data description] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

    NSString *httpRequestURLString = [NSString stringWithFormat:@"http://%@/RegisterDevice.cgi?%@", kRegistrationURI, escapedData];
    NSURL    *httpRequestURL       = [NSURL URLWithString:httpRequestURLString];
}

Другие советы

Мишал, за ваш комментарий к ответу CocoaFu

Я имею в виду, когда я запускаю свое приложение в то время, он будет генерировать разные токены для этого устройства или нет?И если он генерирует разные токены, чем с ним справиться правильно?

Этот абзац в iOS-документ помогает понять, когда токены устройств могут меняться на устройстве пользователя и почему вы запускаете их каждый раз при запуске приложения:

Запрашивая токен устройства и передавая его поставщику каждый раз, когда запускается ваше приложение, вы помогаете убедиться, что у поставщика есть текущий токен для устройства.Если пользователь восстанавливает резервную копию на устройство, отличное от того, для которого была создана резервная копия (например, пользователь переносит данные на новое устройство), он или она должны запустить приложение хотя бы один раз, чтобы он снова получил уведомления.Если пользователь восстанавливает данные резервного копирования на новое устройство или переустанавливает операционную систему, токен устройства меняется.Более того, никогда не кэшируйте токен устройства и не давайте его своему поставщику;Всегда получайте токен от системы, когда вам это нужно.Если ваше заявление зарегистрировано ранее, вызовы RegisterForReMotenOtificationTypes:Приводит к тому, что iOS передает токен устройства сразу же делегата без дополнительных накладных расходов.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top