Токен устройства не приходит для устройства iOS 9 при интеграции собственного push-уведомления iOS с WorkLight

Я пытаюсь отправить push-уведомление на устройство iOS через Worklight, используя пример кода и шаги, указанные на странице https://mobilefirstplatform.ibmcloud.com/tutorials/en/foundation/6.3/notifications/push-notifications-native-ios-applications/

Когда я запускаю приложение на устройстве iOS 7, я получаю токен устройства, и поэтому, когда я нажимаю кнопку подписки, я получаю успешный ответ. Это работает, даже если мы не пишем никакого кода в didFinishLaunchingWithOptions для регистрацииForRemoteNotifications.

Но когда я запускаю один и тот же код на устройстве iOS 8 и iOS 9, я получаю следующее сообщение на консоли:

iOSNativePush[1119:372642] registerForRemoteNotificationTypes: не поддерживается в iOS 8.0 и более поздних версиях.

Чтобы запустить мое приложение для устройства iOS >= 8, я написал следующий код:

  - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
 {
// Override point for customization after application launch.

if([[UIApplication sharedApplication] respondsToSelector:@selector(isRegisteredForRemoteNotifications)])
   {
    [[UIApplication sharedApplication] registerUserNotificationSettings:  [UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound) categories:nil]];

    [[UIApplication sharedApplication] registerForRemoteNotifications];
    }
else
   {
    [[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIUserNotificationTypeAlert | UIUserNotificationTypeBadge |    UIUserNotificationTypeSound)];
   }
return YES;
   }


- (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings
{
  [application registerForRemoteNotifications];
}

Тем не менее я получаю сообщение «iOSNativePush[1119:372642] registerForRemoteNotificationTypes: не поддерживается в iOS 8.0 и более поздних версиях» в консоли, но для устройства iOS 8 я получаю токен устройства и устройство получает подписку, но то же самое не работает для устройства iOS 9.

Я также ссылался на следующую ссылку, но безуспешно https://www.ibm.com/developerworks/community/blogs/worklight/entry/understanding-and-setting-up-push-notifications-in-development-evnironment?lang=en

Пожалуйста, помогите мне получить токен устройства для устройства iOS 9.


person sakshi    schedule 21.07.2016    source источник


Ответы (2)


if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0)
{
    [[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]];
    [[UIApplication sharedApplication] registerForRemoteNotifications];
}

Используйте приведенный выше код

person Darshan Karekar    schedule 21.07.2016
comment
Спасибо за ответ, я не знаю как, но мой старый код сегодня работает, я получил токен устройства для iOS 9 :) - person sakshi; 22.07.2016

Эта проблема была исправлена ​​в более поздних исправлениях iFix MobileFirst 6.3 и выше.

Разрешить:

1) Обновите свою студию MobileFirst до последней версии iFix.

2) Добавьте новую родную среду iOS.

3) Замените родную папку сэмпла вновь сгенерированной (с помощью iFix)

4) Очистить, собрать и развернуть.

person Vivin K    schedule 21.07.2016
comment
Спасибо, я попробую это. - person sakshi; 21.07.2016