【设定本地通知为周一到周五提醒, 周末不提醒解决办法】

iOS开发中的信息提示推送方式,一类是远程服务器推送(APNS)与UILocalNotification本地通知的,我们知道UILocalNotification的通知重复提示的单位是以是秒、分、时、天、周、月等. 如图:

那么问题来了, 要实现标题所说的该怎么办呢?

哈哈...

小编第一想到是的先判断系统时间为星期几, 然后分别设置5个以周为单位的通知, 但考虑到很麻烦, 小编本人最怕麻烦了? 于是开始向他(她)人请教.

这是位美女哦~ 这里不介绍了, 感谢~~

说到这估计有人要砍人了, 说了这么多, 快说怎么解决吧~~ 那下面就说怎么实现吧!

解决方法

1. 设置一个以天为单位的通知

#pragma mark  本地通知

- (void)setLocalNotification:(UILocalNotification *)mLocalNotification  WithTime:(NSString *)notificationTime withTitle:(NSString *)alertBody

{

// 设置通知的标题(操作名称)

mLocalNotification.alertAction = @"这是一条通知";

// 设置通知的正文

mLocalNotification.alertBody = alertBody;

// 设置通知的时间

NSDateFormatter *formattr = [[NSDateFormatter alloc] init];

// 格式化时间

[formattr setDateFormat:@"HH:mm"];

// 触发通知时间

NSDate *now = [formattr dateFromString:notificationTime];

mLocalNotification.fireDate = now;

// 设置重复通知的时间为每日提醒

mLocalNotification.repeatInterval = NSCalendarUnitDay; // kCFCalendarUnitMinute NSCalendarUnitDay

// 通知触发时播放的声音

mLocalNotification.soundName = UILocalNotificationDefaultSoundName;

// 取消通知的时候判断key和ID相同的就是同一个通知了。

NSDictionary *dict =[NSDictionary dictionaryWithObjectsAndKeys:notificationTime, @"key" ,nil];

[mLocalNotification setUserInfo:dict];

// 利用Application添加通知

[[UIApplication sharedApplication] scheduleLocalNotification:mLocalNotification];

}

2.在 - (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification方法中判断是否为周末, 为周末就取消该通知, 那有人又会问了, 怎么取消该通知呢? 请看上面代码, 是否主要到我给通知设定了一个UserInfo, 对了, 就是遍历所以通知, 找到key相同的通知取消, 还是上代码吧!

- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification

{

NSDictionary *userInfo = notification.userInfo;

if ([@"10:00" isEqualToString:userInfo[@"key"]]) {

if ([toolset isWeekend]) {

// 取消通知

[self cancelLocalNotificationWithkeyValue:value];

// 重新开启

UILocalNotification *notification = [[UILocalNotification alloc] init];

[self setLocalNotification:notification WithTime:value withTitle:@"好烦好烦..."];

}

}

/** 取消某个的通知 如: value = @"10:00" */

- (void)cancelLocalNotificationWithkeyValue:(NSString *)value

{

NSArray *notifications=[[UIApplication sharedApplication] scheduledLocalNotifications];

NSUInteger acount = notifications.count;

if (acount>0){

for (UILocalNotification *myUILocalNotification in notifications) {

NSDictionary *userInfo = myUILocalNotification.userInfo;

if ([value isEqualToString:userInfo[@"key"]]) {

[[UIApplication sharedApplication] cancelLocalNotification:myUILocalNotification];

NSLog(@"取消: %@", value);

}

}

}

}

好了, 赶紧试试吧! 如果还有更好的方法, 请告知, TKS!

时间: 2024-10-12 20:37:05

【设定本地通知为周一到周五提醒, 周末不提醒解决办法】的相关文章

在本地安装RabbitMQ Server教程以及可能遇到的问题及解决办法

1. Download latest erlang OTP platform from : erlang:http://www.erlang.org/download.html (The latest version otp_win64_21.0.1.exe has been uploaded to GIT repository) 2. Download latest RabbitMQ Server installer from : rabbitmq:http://www.rabbitmq.co

Ios开发中UILocalNotification实现本地通知实现提醒功能

这两天在做一个日程提醒功能,用到了本地通知的功能,记录相关知识如下: 1.本地通知的定义和使用: 本地通知是UILocalNotification的实例,主要有三类属性: scheduled time,时间周期,用来指定iOS系统发送通知的日期和时间: notification type,通知类型,包括警告信息.动作按钮的标题.应用图标上的badge(数字标记)和播放的声音: 自定义数据,本地通知可以包含一个dictionary类型的本地数据. 对本地通知的数量限制,iOS最多允许最近本地通知数

iOS开发中UILocalNotification本地通知实现简单的提醒功能

这段时间项目要求做一个类似的闹钟提醒功能,对通知不太熟悉的我,决定先用到xcode自带的本地通知试试,最终成功的实现了功能,特整理分享下. 它的表现特点: app关闭的时候也能接收和显示通知. app处于后台的时候能接收通知也能显示. app处于前台的时候能接收,但不能显示,但是会走应用程序delegate中的方法 具体的创建方法: ->创建一个本地通知对象UILocalNotification ->设置fireDate,AlertBody,AlertAction,soundName,appl

UILocalNotification实现本地通知实现提醒功能

1.本地通知的定义和使用: 本地通知是UILocalNotification的实例,主要有三类属性: scheduled time,时间周期,用来指定iOS系统发送通知的日期和时间: notification type,通知类型,包括警告信息.动作按钮的标题.应用图标上的badge(数字标记)和播放的声音: 自定义数据,本地通知可以包含一个dictionary类型的本地数据. 对本地通知的数量限制,iOS最多允许最近本地通知数量是64个,超过限制的本地通知将被iOS忽略.  代码如下 复制代码

ios推送:本地通知UILocalNotification

  转载自:http://www.2cto.com/kf/201403/285612.html 在去年做过一个小App,其中使用的关键功能就是向用户发送本地通知,可惜当时没有写博客的习惯,所以没有将对应的知识记录下来.最近又遇到了该功能的使用,这一次果断写个博客做下有关UILocalNotification的笔记. 首先是添加一个本地通知到系统中,代码如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 2

iOS本地通知:UILocalNotification

最近在做一个电商的APP,话说今年电商很火啊. 用到了本地通知,特此整理一下 添加一个本地通知到系统中,代码如下: // 初始化本地通知对象 UILocalNotification *notification = [[UILocalNotification alloc] init]; if (notification) { // 设置通知的提醒时间 NSDate *currentDate = [NSDate date]; notification.timeZone = [NSTimeZone d

我的工作——周一至周五

对我而言:程序员是身在白领环境中,却干着民工活儿的人员.本人在广州工作,相信大家也都熟悉我这种作息规律:早上9点上班,坐在电脑前面,编程一天,下午6点下班回家.加班就是晚上9点下班回家.周六有时还要加班.真正的是“996”的生活模式. 最近,我将我周一至周五的作息规律做了一次较大的调整.工作将近三个月时间里,我一直像其他程序员那样工作.休息.但我是这个老黄牛型的人比较热衷与项目开发. 笔者为了整理一套适合自己的高效.健康的工作及作息习惯规律,为此阅读了大量的书籍.包括:<高效能人士的七个习惯>

iOS开发--本地通知与远程通知

iOS开发--本地通知与远程通知 作者 雷潮 关注 2016.02.01 00:18* 字数 1921 阅读 8898评论 1喜欢 41 这里是指推送通知跟NSNotification有区别: 1.NSNotification是系统内部发出通知,一般用于内部事件的监听,或者状态的改变等等,是不可见的2.本地通知与远程通知是可见的,主要用于告知用户或者发送一些App的内容更新,推送一些相关的消息,让用户知道App内部发生了什么事情. Paste_Image.png iOS常用通知 1.本地推送通知

iOS8.0之后没有注册通知的提醒解决办法

在iOS8.0之后如果没注册本地通知就会报出的提醒,如下图: 解决的办法是:在 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 这个方法中注册通知: if ([[UIDevice currentDevice].systemVersion doubleValue]>=8.0) { UIUserNotificationSetting