Я реализую службу push-уведомлений в своем приложении. Я создал службу в стиле Easy Apns, но более простым способом. У меня есть служба, которая использует базу данных MySql для хранения токенов приложения и второй службы, которая обращается к базе данных, готовит уведомления и отправляет их.Управление устройством уведомления о push-уведомлении
Это работает, но я не уверен, что моя учетная часть (на стороне клиента) верна.
Приложение метод делегата:
- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken {
NSString *devToken = [[[[deviceToken description]
stringByReplacingOccurrencesOfString:@"<"withString:@""]
stringByReplacingOccurrencesOfString:@">" withString:@""]
stringByReplacingOccurrencesOfString: @" " withString: @""];
NSString *urlString = [@"/apns.php?"stringByAppendingString:@"task=register"];
urlString = [urlString stringByAppendingString:@"&appname="];
NSString *appName = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleDisplayName"];
urlString = [urlString stringByAppendingString:appName];
urlString = [urlString stringByAppendingString:@"&devicetoken="];
urlString = [urlString stringByAppendingString:devToken];
NSString *host = @"myservice.php";
NSURL *url = [[NSURL alloc] initWithScheme:@"http" host:host path:urlString];
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url];
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
}
Этот код обновляет токен каждый раз, когда приложение будет перезагружен. Правильно ли это? Должна ли фаза регистрации произойти только один раз (например, когда пользователь впервые принимает услугу уведомления)? В моем случае, каждый раз, когда приложение перезапускается, токен добавляется в мою базу данных (поэтому мне нужно управлять со стороны сервера, если это реплицированный токен).