iOS问题解决(三):模拟器收不到UILocalNotification本地通知

通知功能是iOS应用开发经常会碰到的需求,iOS应用的通知分为本地通知和远程通知(即消息推送),Apple develop官网的API Guides对通知的开发有详细的介绍。

今天我碰到的问题是模拟器收不到本地通知,按照惯例,先上本地通知的代码:

    UILocalNotification *note = [[UILocalNotification alloc] init];
    note.alertBody = @"Hypnotize";
    note.fireDate = date; //这里date 变量是一个NSDate对象,从页面上的UIDatePicker对象上获取的
    note.applicationIconBadgeNumber = 1;
    [[UIApplication sharedApplication] scheduleLocalNotification:note];

原本以为这样就可以接收到通知了,结果一运行,始终看不到通知,过了通知的设定时间好久了,也看不到通知。查阅了下通知的用法文档,才知道需要去申请发送通知的授权。修正后的代码如下所示:

//判断是否已经授权用户发送通知
if ([[UIApplication sharedApplication] currentUserNotificationSettings].types != UIUserNotificationTypeNone) {
    UILocalNotification *note = [[UILocalNotification alloc] init];
    note.alertBody = @"Hypnotize";
    note.fireDate = date;//这里date 变量是一个NSDate对象,从页面上的UIDatePicker对象上获取的
    note.applicationIconBadgeNumber = 1;
    [[UIApplication sharedApplication] scheduleLocalNotification:note];
} else{
    //用户注册通知,注册后才能收到通知,这会给用户一个弹框,提示用户选择是否允许发送通知
    [[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound   categories:nil]];
}

用户注册通知后,会收到一个回调函数,一般如果未授权,创建通知就在这个回调函数里进行。

//用户注册通知回调函数
- (void)application:(UIApplication *) application
    didRegisterUserNotificationSettings:(UIUserNotificationSettings   *)notificationSettings {
     if (notificationSettings.types != UIUserNotificationTypeNone) {
         NSLog(@"haha");
        UILocalNotification *note = [[UILocalNotification alloc] init];
        note.alertBody = @"Hypnotize";
        note.fireDate = rvc.selectDate;
        note.applicationIconBadgeNumber = 1;
        [[UIApplication sharedApplication] scheduleLocalNotification:note];
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,387评论 25 708
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,245评论 4 61
  • “你这份报告写得很好。” “你很细心。” “你这人真不错!昨晚开车送我回家。” 赞扬也可能造成人与人之间的隔阂。这...
    Fly_Catkin阅读 179评论 0 0
  • 忆芳时年华 谁点相思 谁种桃花… 摘自微博。
    EIben_阅读 263评论 0 1
  • 1.坏事情:今天是一个沮丧的早上, 1.先是对表姐很多的意见,觉得她睡觉打呼噜,倔强的在打豆浆时没有加到水位线,我...
    柔光宝宝阅读 141评论 0 0