首页 > 其他分享 >iOS学习笔记45—本地通知UILocalNotification

iOS学习笔记45—本地通知UILocalNotification

时间:2022-12-27 18:36:58浏览次数:50  
标签:notification 45 iOS UILocalNotification 通知 copy UIApplication view


在iOS中有两类信息提示推送方式,一类是远程服务器推送(APNS),之前有笔记9​​,还有一类就是本地通知UILocalNotification,今天就简要的记录一下UILocalNotification的使用,代码里见注释

 



[cpp]  ​​view plain​​ ​​copy​​



  1. UILocalNotification *notification = [[UILocalNotification alloc] init];  
  2.     NSDateFormatter *formatter = [[NSDateFormatter alloc] init];  
  3. "HH:mm:ss"];  
  4. //触发通知的时间  
  5. "15:00:00"];  
  6.     notification.fireDate = now;  
  7. //时区  
  8.     notification.timeZone = [NSTimeZone defaultTimeZone];  
  9. //通知重复提示的单位,可以是天、周、月  
  10.     notification.repeatInterval = NSDayCalendarUnit;  
  11. //通知内容  
  12. "这是一个新的通知";  
  13. //通知被触发时播放的声音  
  14.     notification.soundName = UILocalNotificationDefaultSoundName;  
  15. //执行通知注册  
  16.     [[UIApplication sharedApplication] scheduleLocalNotification:notification];  



以上代码实现了这么一个场景:一些Todo和闹钟类应用都有通知用户的功能,使用的就是iOS中的本地通知UILocalNotification,还有些应用会在每天、每周、每月固定时间提示用户回到应用看看,也是用的本地通知,以上代码片段就是实现了在每天的下午3点弹出通知提示。

 

 

如果要在通知中携带参数信息,可以使用下面的方式:

 



[cpp]  ​​view plain​​ ​​copy​​



  1. NSDictionary *dic = [NSDictionary dictionaryWithObject:@"name" forKey:@"key"];  
  2.     notification.userInfo = dic;  



如果软件是在运行中,则可以通过AppDelegate中的回调方法获取并处理参数信息:

 

 



[cpp]  ​​view plain​​ ​​copy​​



  1. -(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification  
  2. {  
  3. if (notification) {  
  4.         NSDictionary *userInfo =  notification.userInfo;  
  5. "key"];  
  6. "%@",obj);  
  7.     }  
  8. }  



另外,可以通过两种方式取消注册的本地通知,一种是取消指定的通知,第二种是取消所有的注册通知:

 

 



[cpp]  ​​view plain​​ ​​copy​​



  1. [[UIApplication sharedApplication] cancelLocalNotification:localNotification];  
  2.    [[UIApplication sharedApplication] cancelAllLocalNotification];  



以上就简要介绍了一下UILocalNotification的使用,欢迎大家指正和补充!

标签:notification,45,iOS,UILocalNotification,通知,copy,UIApplication,view
From: https://blog.51cto.com/u_3457306/5973153

相关文章

  • iOS6下自定义UI控件外观效果
    尽管iOS原生的UI控件就已经有很不错的显示效果,但是App开发者仍然希望自己的产品与众不同,所以自定义UI外观成了每个App产品开发必做之事。今天就来做一个在iOS6下实现自定义U......
  • IOS中Json解析的四种方法
    作为一种轻量级的数据交换格式,json正在逐步取代xml,成为网络数据的通用格式。有的json代码格式比较混乱,可以使用此“http://www.bejson.com/”网站来进行JSON格式化校验(​​......
  • iOS多线程编程之NSThread的使用
    1、简介:1.1iOS有三种多线程编程的技术,分别是:1.、​​NSThread​​ 2、​​CocoaNSOperation​​ (​​iOS多线程编程之NSOperation和NSOperationQueue的使用​​)3、​​G......
  • iOS第三方开源库的吐槽和备忘
    做iOS开发总会接触到一些第三方库,这里整理一下,做一些吐槽。 目前比较活跃的社区仍旧是Github,除此以外也有一些不错的库散落在GoogleCode、SourceForg......
  • iOS 开发者必不可少的 75 个工具
    如果你去到一位熟练的木匠的工作室,你总是能发现他/她有一堆工具来完成不同的任务。软件开发同样如此。你可以从软件开发者如何使用工具中看出他水准如何。有经验的开发者精......
  • 【iOS知识学习】_iOS开源项目汇总
    扫描wifi信息:​​http://code.google.com/p/uwecaugmentedrealityproject/​​​​http://code.google.com/p/iphone-wireless/​​条形码扫描:​​http://zbar.sourceforge.......
  • 关于iOS常用的26中公共方法,可copy的代码
    1.获取磁盘总空间大小//磁盘总空间+(CGFloat)diskOfAllSizeMBytes{CGFloatsize=0.0;NSError*error;NSDictionary*dic=[[NSFileManagerdefaultManager]attribu......
  • ios 逆向 随笔
    使用爱思助手打开ssh通道登入ssh-p2222root@localhostalpine注:如无法连接,可直接删除.ssh目录user/用户/.ssh(rm-rf.ssh)使用frida-ios-dump-master目录中的dump.py脚......
  • 【Vue 中 Axios 的封装和 API 接口的管理】
    一.封装各模块作用引入一般我会在项目的src目录中,新建一个request文件夹,然后在里面新建一个http.js和一个api.js文件。http.js文件用来封装我们的axios,api.js用来统一管理......
  • go-zero一键生成 Go, iOS, Android, Kotlin, Dart, TypeScript, JavaScript 代码,并可
    go-zero是一个集成了各种工程实践的web和rpc框架。通过弹性设计保障了大并发服务端的稳定性,并经受了充分的实战检验(好未来-晓黑板)。go-zero包含极简的API定义......