星空网 > 软件开发 > 操作系统

本地通知之闹钟

  在现阶的APP中关于消息的处理需求越来越大,系统需要将一下消息以音频或者文字的形式提示用户,这里便用到推送,推送消息主要有本地和远程推送,今天我们先研究一下简单的本地通知,下面以闹钟为例子。

1、我们首先要注册通知

 UIApplication * application=[UIApplication sharedApplication];  //如果当前应用程序没有注册本地通知,需要注册  if([application currentUserNotificationSettings].types==UIUserNotificationTypeNone){        //设置提示支持的提示方式//    UIUserNotificationTypeBadge  提示图标//    UIUserNotificationTypeSound  提示声音//    UIUserNotificationTypeAlert  提示弹框    UIUserNotificationSettings * setting=[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge|UIUserNotificationTypeSound|UIUserNotificationTypeAlert categories:nil];    [application registerUserNotificationSettings:setting];    }  //删除之前的重复通知  [application cancelAllLocalNotifications];通知注册完成之后可以在设置里面进行查看,同时也可以删除。如图:

本地通知之闹钟images/loading.gif' data-original="http://images0.cnblogs.com/blog2015/708076/201508/171627316288452.png" />

本地通知之闹钟

 

2、设置通知

#pragma mark - 添加本地通知- (void) _addLocalNotification:(NSDate *) date{    UILocalNotification * noti=[[UILocalNotification alloc] init];  //设置开始时间  noti.fireDate=date;    //设置body  noti.alertBody=@"该起床了";    //设置action  noti.alertAction=@"解锁";    //设置闹铃  noti.soundName=@"4195.mp3";  #warning 注册完之后如果不删除,下次会继续存在,即使从模拟器卸载掉也会保留  //注册通知  [[UIApplication sharedApplication] scheduleLocalNotification:noti];  }

这样就会在设置的时间内闹钟响起来,如图:

本地通知之闹钟

3、这样闹钟的功能基本实现,但是还有一个问题,因为如果当前程序是打开的会导致闹钟不会响起来,那我们如何解决问题呢。此时我们需要借助播放器来解决

  @interface AppDelegate (){  //定义播放器播放音乐  AVAudioPlayer * player;  //用来判断是不是从通知窗口打开  BOOL isFromNotification;}- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification{   //如果是从通知窗口进来的则不需要播放音频  if (isFromNotification) {    return;  }    //初始化音乐播放音乐  NSURL * url=[[NSBundle mainBundle] URLForResource:@"4195.mp3" withExtension:nil];  player=[[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];  player.numberOfLoops=0;    [player prepareToPlay];  [player play];  }

这样便大功告成了。

 

  想要了解更多内容的小伙伴,可以点击查看源码,亲自运行测试。

  疑问咨询或技术交流,请加入官方QQ群:本地通知之闹钟 (452379712)

 

作者:杰瑞教育
出处:http://www.cnblogs.com/jerehedu/ 
本文版权归烟台杰瑞教育科技有限公司和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
 



原标题:本地通知之闹钟

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

谷歌自适应搜索广告的优化技巧:https://www.kjdsnews.com/a/1454276.html
TikTok起诉美国蒙大拿州禁令违法:https://www.kjdsnews.com/a/1454277.html
tiktok美国海外户的好处:https://www.kjdsnews.com/a/1454278.html
亚马逊浏览量和访客数的区别是什么?:https://www.kjdsnews.com/a/1454279.html
南航物流拟分拆上市;Tik Tok重组电商部门:https://www.kjdsnews.com/a/1454280.html
跨境物流涉及到的环节需要哪些不同的文件?:https://www.kjdsnews.com/a/1454281.html
2024.03.29亚马逊选品推荐(仅供参考):宠物饮水机滤芯片:https://www.kjdsnews.com/a/1836532.html
想要搞钱,就去做离搞钱最近的事:https://www.kjdsnews.com/a/1836533.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流