ios10之前的方法:
UIApplication *app = [UIApplication sharedApplication];
UIUserNotificationSettings *notice = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge categories:nil];
[app registerUserNotificationSettings:notice];
app.applicationIconBadgeNumber = 15;
iOS 10 中以前杂乱的和通知相关的 API 都被统一了,现在开发者可以使用独立的 UserNotifications.framework 来集中管理和使用 iOS 系统中通知的功能。在此基础上,Apple 还增加了撤回单条通知,更新已展示通知,中途修改通知内容,在通知中展示图片视频,自定义通知 UI 等一系列新功能,非常强大。
对于开发者来说,相较于之前版本,iOS 10 提供了一套非常易用的通知处理接口,是 SDK 的一次重大重构。而之前的绝大部分通知相关 API 都已经被标为弃用 (deprecated)。
//
// ViewController.m
// testoc
//
// Created by sjl on 2019/4/27.
// Copyright © 2019年 zjut. All rights reserved.
//
#import "ViewController.h"
#import <UserNotifications/UserNotifications.h>
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
[[UNUserNotificationCenter currentNotificationCenter] requestAuthorizationWithOptions:UNAuthorizationOptionAlert | UNAuthorizationOptionBadge | UNAuthorizationOptionSound completionHandler:^(BOOL granted, NSError *__nullable error){
//如果granted为YES 则说明申请成功
if (granted) {
NSLog(@"开通成功");
} else {
NSLog(@"开通失败");
}
}];
[UIApplication sharedApplication].applicationIconBadgeNumber = 10;
}
@end
效果图:
参考文章:
https://www.jianshu.com/p/3710cec3316e