在将 iOS 本机推送通知与 WorkLight 集成时,iOS 9 台设备没有设备令牌
Device token not coming for iOS 9 device while integrating iOS native push notification with WorkLight
中提供的示例代码和步骤通过 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
当我 运行 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