未读消息总数在appIcon上显示的小总结

来源:互联网 时间:2017-01-22


摘要:

在IOS7中设置applicationIconBadgeNumber不会有什么问题,但是直接在IOS8中设置applicationIconBadgeNumber会报错,因为在IOS8中要想设置applicationIconBadgeNumber,需要用户的授权。查阅苹果官方文档,有以下信息:


// set to 0 to hide. default is 0. In iOS 8.0 and later,
// your application must register for user notifications using
//-[UIApplication registerUserNotificationSettings:] before being able to set the icon badge.
@property(nonatomic) NSInteger applicationIconBadgeNumber __TVOS_PROHIBITED;

翻译下:

设置0为隐藏,默认是0,在iOS8.0以后,你的应用想要设置图片标记必须要用-[UIApplication registerUserNotificationSettings:] 这个方法注册用户通知。


疑惑

看到这儿,我懂了点什么,需要实现上面哪个方法,可是这个方法在哪儿实现呢,然后查阅网上资料,终于知道要在appDelegate.m中的


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

方法中实现即可。


总结步骤:
// 1. 判断系统版本,在iOS7中不需要设置,否则会报错
/**
* 注册通知
*/
#define kDeviceVersion [[UIDevice currentDevice] systemVersion].floatValue
if (kDeviceVersion >= 8.0) {
// 2.使用本地通知
// badge,alert和sound都属于通知类型,如果只进行未读数在appIcon显示,只需要设置badge就可, 这里全写为了方便以后的使用)
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert categories:nil];
// 3.进行注册
[application registerUserNotificationSettings:settings];
}

在你的控制器中需要设置显示信息的地方加上下面一句代码即可:


[UIApplication sharedApplication].applicationIconBadgeNumber = XXX;

注:XXX是你要设置的NSNumber类型的值


总结:

哪怕只是一点小小的知识点,总结后也是一种收获,给自己做笔记学习的同时,把知识分享出去,共同学习,共同提高,若有错误,请各位批评指正!




相关阅读:
Top