#objective-c #ios #xcode #push-notification
#objective-c #iOS #xcode #push-уведомление
Вопрос:
Я новичок в разработке Objective-C и iOS, но мне было интересно, есть ли способ запросить токен устройства Push-уведомлений Apple у контроллера представления и сохранить токен в строке для последующего использования в строке запроса, отправленной моему веб-приложению.
Я искал, но не смог найти решение этой проблемы. Любая помощь будет оценена!
Ответ №1:
Вы должны иметь возможность вызывать registerForRemoteNotificationTypes:
в любом месте вашего кода.
Но вам придется реализовать application:didRegisterForRemoteNotificationsWithDeviceToken:
его в делегате вашего приложения.
Вы можете зарегистрироваться для получения до 3 различных типов уведомлений. Просто удалите и добавьте по мере необходимости.
[[UIApplication sharedApplication]
registerForRemoteNotificationTypes:
(UIRemoteNotificationTypeAlert | //Alerts are pop up boxes or on ios5, banners
UIRemoteNotificationTypeBadge | //Badges are the little red number on the icon
UIRemoteNotificationTypeSound)]; //Sounds are... well, sounds. These can be played when presenting a remote notification
Комментарии:
1. Очень похоже на обратные вызовы в средах smalltalk. Предложение Джеймса является обоснованным.
2. Для меня это звучит правильно. В настоящее время у меня есть: — (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { NSLog(@»didRegisterForRemoteNotificationsWithDeviceToken: %@», deviceToken); } в AppDelegate. Каким будет синтаксис для вызова registerForRemoteNotificationTypes из контроллера представления?
3. Это зависит от типа уведомлений, для которых вы хотите зарегистрироваться. Я добавил к своему ответу.
4. Спасибо за вашу помощь. У меня есть registerForRemoteNotificationTypes и didRegisterForRemoteNotificationsWithDeviceToken в моем делегате приложения. Проблема, с которой я сталкиваюсь в настоящее время, заключается в том, как установить токен устройства, который извлекается с помощью didRegisterForRemoteNotificationsWithDeviceToken, в строку, объявленную в контроллере представления.
5. Вы должны отправить токен на сервер, чтобы вы могли использовать его позже