美文网首页
本地通知

本地通知

作者: 虞小虞 | 来源:发表于2016-06-29 18:27 被阅读47次

本地通知:

kvc(键值编码)优点:可以给类的任意实例变量赋值,即使实例变量是私有的

缺点:必须要知道实例变量名,破坏封装性

KVO (键值观察)  是一种能使对象获取到其他对象属性变化的通知,极大的简化了代码,实现KVO模式,被观察的对象必须是使用KVC来修改它的实例变量,这样才能被观察者观察到。

本地通知是由本地应用触发的,它是基于时间行为的一种通知形式,例如闹钟定时、待办事项提醒,又或者一个应用在一段时候后不使用通常会提示用户使用此应用等都是本地通知

由于在iOS8之后,本地通知的写法有所改变,所以在此之前需要进行版本判断,如下:

- (BOOL)application:(UIApplication *)applicationdidFinishLaunchingWithOptions:(NSDictionary *)launchOptions{

//判断版本是不是8.0以上的

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) {

//注册通知

UIUserNotificationSettings *settings= [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge |UIUserNotificationTypeSound | UIUserNotificationTypeAlert categories:nil];

[[UIApplication sharedApplication] register UserNotificationSettings:settings];

}

return YES;

}

一、添加本地推送

1、创建UILocalNotification (创建本地通知,注册)

2、设置处理通知的时间fireDate(触发通知的时间)

3、配置通知的内容:通知主体、、通知声音、图标、数字等

4、配置通知传递的自定义参数useInfo(可选)

5、调用通知,可以使用scheduleLocalNotification:按计划调度一个通知,也可以用presentLocalNotificationNow立即调用通知;

//创建本地通知对象

UILocalNotification*localNotification= [[UILocalNotificationalloc]init];

//设定调度时间,即通知五秒后执行

NSDate*nowDate = [NSDatedate];

[localNotificationsetFireDate:[nowDatedateByAddingTimeInterval:5.0]];

//循环次数,kCFCalendarUnitWeekday一周一次

localNotification.repeatInterval=0;

//当前日历,使用前最好设置时区等信息以便能够自动同步时间

//notification.repeatCalendar=[NSCalendar currentCalendar];

//设定时区

[localNotificationsetTimeZone:[NSTimeZonedefaultTimeZone]];

//设置弹出消息

[localNotificationsetAlertBody:@"抢购时间到了"];

[localNotificationsetAlertAction:@"show now"];

//设置通知声音

[localNotificationsetSoundName:UILocalNotificationDefaultSoundName];

//设置用户信息

localNotification .userInfo=@{@"id":@1,@"user":@"KenshinCui"};//绑定到通知上的其他附加信息

//设置IconbadgeNumber图标数字,设置count为全局变量用count来控制图标数字的增加

count++;

[localNotificationsetApplicationIconBadgeNumber:count];

//应用程序计划执行通知

[[UIApplicationsharedApplication]scheduleLocalNotification:localNotification];

[[[UIAlertViewalloc]initWithTitle:@"提示"message:@"设置提醒成功"delegate:nilcancelButtonTitle:@"OK"otherButtonTitles:nil,nil]show]

二、程序运行时接收到本地推送信息

-(void)application:(UIApplication*)applicationdidReceiveLocalNotification:(UILocalNotification*)notification{

//这里,你就可以通过notification的useinfo,干一些你想做的事情了

//这里是创建一个KViewController并在点击通知时切换到该页面

UIStoryboard*storyboard = [UIStoryboardstoryboardWithName:@"Main"bundle:nil];

KViewController*kViewController =[storyboardinstantiateViewControllerWithIdentifier:@"KViewController"];

UINavigationController*navigationController= (UINavigationController*)self.window.rootViewController;

[navigationControllerpushViewController:kViewControlleranimated:YES];

//图标数字在每次点开通知后都会减一,知道图标为0(即图标消失)不再减

application.applicationIconBadgeNumber-=1;

}

三、移除本地推送

#pragma mark移除本地通知

-(void)removeNotification{

[[UIApplicationsharedApplication]cancelAllLocalNotifications];

}

相关文章

  • iOS 通知的使用

    源地址 本地通知属于UIKit框架、推送通知属于Foundation框架。 本地通知 本地通知是由本地应用触发的,...

  • iOS10 通知框架总结

    通知分为本地通知和远端通知,这里着重介绍本地通知。本地通知有三个步骤 Appdelegate中申请通知权限 App...

  • 通知--本地通知

    本地通知是由本地应用触发的,它是基于时间行为的一种通知形式,例如闹钟定时、待办事项提醒,又或者一个应用在一段时候后...

  • iOS 本地推送通知

    本地推送通知 对本地通知的数量限制,iOS最多允许最近本地通知数量是64个,超过限制的本地通知将被iOS忽略。 a...

  • 本地推送通知、远程推送通知、激光推送

    title : 本地推送通知、远程推送通知、激光推送category : UI 本地推送通知、远程推送通知、激光...

  • UILocalNotification

    本文内容a.注册普通本地通知b.自定义操作的本地通知c.自定义可快捷回复的本地通知 注册普通本地通知 创建一个本地...

  • iOS14开发- 通知

    iOS 中的通知主要分为 2 种,本地通知和远程通知。 本地通知 使用步骤 导入UserNotifications...

  • iOS开发- 推送服务

    1,注册本地通知 使用本地通知之前是需要预先设置好通知的一些基本属性,然后向系统注册本地通知,通知会在设定好的时间...

  • 本地推送/本地通知

    一、本地推送/本地通知 是什么? (名称概念)本地推送,其实也就是本地通知,它们指的是同一种概念,只是叫法不同,下...

  • 本地通知

    iOS系统可支持本地通知和远程通知,一个通知在客户端收到的时候可能是一个通知窗体,可能会播放一段通知声音,还有可能...

网友评论

      本文标题:本地通知

      本文链接:https://www.haomeiwen.com/subject/eksxjttx.html