На самом деле я разрабатываю приложение для iPhone и iPad.
Я внедряю APN, и это работает для iOS ‹ 8.0. В поисках в Stackoverflow я нашел много вопросов об этом и способе реализации APN для iOS 8.0 и более поздних версий, и я просто следую этим шагам.
Мой код:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[self registerForRemoteNotification];
return YES;
}
- (void)registerForRemoteNotification
{
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"8.0")) {
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:
UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert categories:nil];
[[UIApplication sharedApplication] registerUserNotificationSettings:settings];
} else {
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)];
}
}
#ifdef __IPHONE_8_0
- (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings
{
//register to receive notifications
[application registerForRemoteNotifications];
NSLog(@"Active notifications: %@", [[UIApplication sharedApplication] currentUserNotificationSettings]);
}
#endif
Когда я проверяю активные уведомления, он возвращает мне «UIUserNotificationSettings: 0x156c03e0; типы: (нет);» и я не понимаю, почему, и журнал все еще показывает мне «Попытка пометить значок приложения, но не получил разрешения от пользователя пометить приложение».