开发

UILocalNotification

2015-12-30  本文已影响203人  kriskangdev

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种情况

  - (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;

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

上一篇 下一篇

猜你喜欢

热点阅读