在将 iOS 本机推送通知与 WorkLight 集成时,iOS 9 台设备没有设备令牌

Device token not coming for iOS 9 device while integrating iOS native push notification with WorkLight

我正在尝试使用 https://mobilefirstplatform.ibmcloud.com/tutorials/en/foundation/6.3/notifications/push-notifications-native-ios-applications/

中提供的示例代码和步骤通过 Worklight 在 iOS 设备上发送推送通知

当我 运行 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 设备。

我也参考了 link 但运气不好 https://www.ibm.com/developerworks/community/blogs/worklight/entry/understanding-and-setting-up-push-notifications-in-development-evnironment?lang=en

请帮助我获取 iOS 9 设备的设备令牌。

此问题已在 MobileFirst 6.3 及更高版本的后续 iFix 中修复。

要解决:

1) 将您的 MobileFirst studio 更新到最新的 iFix。

2) 添加新的 iOS 本机环境。

3) 将示例的本机文件夹替换为新生成的文件夹(使用 iFix)

4) 清理、构建和部署。

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

Use above code