Как по-разному использовать токены устройства в iphone? - PullRequest
0 голосов
/ 03 октября 2009

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

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

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

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

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

Ответы [ 2 ]

3 голосов
/ 03 октября 2009

Вот пример, не обязательно рабочий код:

- (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];
}
0 голосов
/ 06 февраля 2011

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

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

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

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

...