#iphone #ios #push-notification #registration #devicetoken
#iPhone #iOS #push-уведомление #Регистрация #devicetoken
Вопрос:
Я могу получить deviceToken в приведенном ниже методе, теперь я хочу знать, как зарегистрировать deviceToken для push-уведомлений, потому что после получения токена устройства я не уверен, какой метод или API используется для регистрации токена устройства для Push-уведомлений и как работает этот процесс регистрации?
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
NSLog(@"APN device token: %@", deviceToken);
}
Комментарии:
1. Метода нет, вам нужно отправить его на сервер, который будет отправлять уведомления. Сервер сохранит токен в базе данных и будет использовать его для отправки уведомлений на зарегистрированное устройство.
Ответ №1:
Ну, для начала я хочу убедиться, что если вы запускаете следующее registerForRemoteNotificationTypes
при запуске приложения. Вот что вы можете добавить в свой AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:
(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)];
self.window.rootViewController = self.tabBarController;
[self.window makeKeyAndVisible];
return YES;
}
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken{
// Send the deviceToken to server right HERE!!! (the code for this is below)
NSLog(@"Inform the server of this device token: %@", deviceToken);
}
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo{
// Place your code for what to do when the ios device receives notification
NSLog(@"The user info: %@", userInfo);
}
- (void)application:(UIApplication *) didFailToRegisterForRemoteNotificationsWithError:(NSError *)err {
// Place your code for what to do when the registration fails
NSLog(@"Registration Error: %@", err);
}
Когда вы упоминаете о регистрации токена устройства для push-уведомлений, вы должны отправить deviceToken на ваш сервер, который отправляет push-уведомления, и попросить сервер сохранить его в базе данных для push-уведомлений. Вот пример того, как вы можете отправить это на свой сервер.
NSString *host = @"yourhost";
NSString *URLString = @"/register.php?id=";
URLString = [URLString stringByAppendingString:id];
URLString = [URLString stringByAppendingString:@"amp;amp;amp;amp;amp;amp;devicetoken="];
NSString *dt = [[deviceToken description] stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"amp;<amp;>"]];
dt = [dt stringByReplacingOccurrencesOfString:@" " withString:@""];
URLString = [URLString stringByAppendingString:dt];
URLString = [URLString stringByAppendingString:@"amp;amp;amp;amp;amp;amp;devicename="];
URLString = [URLString stringByAppendingString:[[UIDevice alloc] name]];
NSURL *url = [[NSURL alloc] initWithScheme:@"http" host:host path:URLString];
NSLog(@"FullURL=%@", url);
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url];
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
если вам понадобится дополнительная помощь, я буду рад помочь. Свяжитесь со мной на любом веб-сайте: Austin Web and Mobile Guru или Austin Web Design