UILocalNotification

iOS提供两种推送机制: 本地推送通知(Local Notification)与远程推送通知(Remote Notification)

推送通知展示方式

  • 屏幕顶部显示横幅
  • 锁屏界面中间显示横幅
  • 屏幕中间弹出提示框
  • 应用图标角标数字
  • 提示音

本地推送通知: 不需要接入网络就能发出的推送通知(不需要服务器的支持)
使用场景: 常用来定时提醒用户完成一些任务, 如事项提醒、日历、记账类应用等

1.创建本地通知
UILocalNotification *localNoti = [[UILocalNotification alloc]init];

2.设置相关属性

    // 设置通知出现时间
    localNoti.fireDate = [NSDate dateWithTimeIntervalSinceNow:fireDate];
    // 设置通知主题内容
    localNoti.alertBody = @"This is alertBody";
    // 设置通知操作标题
    localNoti.alertAction = @"LocalNotification";
    // 设置重复提示时间间隔
    localNoti.repeatInterval = kCFCalendarUnitMinute;
    // 设置通知被触发时播放声音
    localNoti.soundName = UILocalNotificationDefaultSoundName;
    // 设置应用图标标记
    localNoti.applicationIconBadgeNumber = 1;
    // 设置通知参数(userInfo:字典类型)
    localNoti.userInfo = [NSDictionary dictionaryWithObject:@"userInfo!" forKey:@"key"];

3.注册通知

    // iOS 8.0后
    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) {
        [[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge | UIUserNotificationTypeAlert | UIUserNotificationTypeSound categories:nil]];
        // 执行注册 添加一个推送到application对象
        [[UIApplication sharedApplication] scheduleLocalNotification:localNoti];
    } else {
        [[UIApplication sharedApplication] scheduleLocalNotification:localNoti];
    }

当用户点击本地推送通知,会自动打开app,这里有2种情况

  • app并没有关闭,一直隐藏在后台,让app进入前台,并会调用AppDelegate的下面方法(并非重新启动app)
  - (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
  • app已经被关闭(进程已死),启动app,启动完毕会调用AppDelegate的方法
 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;

其中launchOptions参数通过UIApplicationLaunchOptionsLocalNotificationKey取出本地推送通知对象

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 来源:崔江涛的博客 概述在多数移动应用中任何时候都只能有一个应用程序处于活跃状态,如果其他应用此刻发生了一些用户感...
    李栖桐阅读 939评论 0 0
  • 极光推送: 1.JPush当前版本是1.8.2,其SDK的开发除了正常的功能完善和扩展外也紧随苹果官方的步伐,SD...
    Isspace阅读 6,798评论 10 16
  • 推送通知注意:这里说的推送通知跟NSNotification有所区别NSNotification是抽象的,不可见的...
    醉叶惜秋阅读 1,549评论 0 3
  • 概述 在多数移动应用中任何时候都只能有一个应用程序处于活跃状态,如果其他应用此刻发生了一些用户感兴趣的那么通过通知...
    莫离_焱阅读 6,580评论 1 8
  • //发送通知 UILocalNotification *notification=[[UILocalNotific...
    韩七夏阅读 1,657评论 1 0