//创建本地通知
UILocalNotification *localNote = [[UILocalNotificationalloc] init];
//自定义(星期和时间)
NSDate * newDate = [selfgetNextWeekDay:2hour:20minute:25];
self.localNote.fireDate = newDate;
//设置重复周期为:周(若每天重复使用属性NSCalendarUnitDay或NSCalendarUnitWeekDay)
self.localNote.repeatInterval = kCFCalendarUnitWeek;
self.localNote.timeZone = [NSTimeZonedefaultTimeZone];
self.localNote.alertLaunchImage = @"default-banner.png";
self.localNote.hasAction = YES;
self.localNote.soundName = UILocalNotificationDefaultSoundName;
self.localNote.alertAction = @"通知";
self.localNote.alertBody = @"新的通知~~!";
// 移除旧的通知,防止重复添加
[[UIApplicationsharedApplication] cancelAllLocalNotifications];
[[UIApplicationsharedApplication] scheduleLocalNotification:self.localNote];
/**
* 获取下一个新的星期日期
*
* @param newWeekDay 星期数值从周日算起,星期日1/星期一2/星期二3...星期六7
* @param hour 设定的小时值
* @param minute 设定的分钟值
*
* @return返回新的日期(NSDate对象)
*/
-(NSDate *)getNextWeekDay:(int)newWeekDay hour:(int)hour minute:(int)minute{
NSDateComponents * components = [[NSCalendarcurrentCalendar] components:NSCalendarUnitWeekday|NSCalendarUnitDay|NSCalendarUnitHour|NSCalendarUnitMinute|NSCalendarUnitSecondfromDate:[NSDatedate]];
HTLog(@"设置的weekday = %d", newWeekDay);
NSDateComponents *comps = [[NSDateComponentsalloc] init] ;
NSInteger unitFlags = NSCalendarUnitEra |
NSCalendarUnitYear |
NSCalendarUnitMonth |
NSCalendarUnitDay |
NSCalendarUnitHour |
NSCalendarUnitMinute |
NSCalendarUnitSecond |
NSWeekCalendarUnit |
NSCalendarUnitWeekday |
NSCalendarUnitWeekdayOrdinal |
NSCalendarUnitQuarter;
comps = [[NSCalendarcurrentCalendar] components:unitFlags fromDate:[NSDatedate]];
[comps setHour:hour];
[comps setMinute:minute];
[comps setSecond:0];
int temp = 0;
int days = 0;
temp = newWeekDay - components.weekday;
days = (temp >= 0 ? temp : temp + 7);
NSDate *newFireDate = [[[NSCalendarcurrentCalendar] dateFromComponents:comps] dateByAddingTimeInterval:3600 * 24 * days];
return newFireDate;
}
相关推荐
随着iOS10.0的发布,苹果对推送通知服务进行了显著的改进和扩展,为开发者提供了更多自定义和交互的可能性。以下是关于“iOS10.0本地推送通知”的详细知识点: 1. **本地通知**:与远程推送通知(通过Apple Push ...
这是封装本地推送通知的类文件,包含头文件和实现文件。在`ZBLocalNotification.h`中,你会看到类声明以及对外公开的方法,这些方法用于设置和管理本地推送。而在`ZBLocalNotification.m`中,将实现这些方法的逻辑。...
在本文中,我们将深入探讨本地和推送通知编程的各个方面。首先,我们要明确本地通知和推送通知的概念。它们都允许应用程序在没有运行在前台的情况下,向用户发送消息通知,这些通知可能是一条消息、即将发生的日历...
而当应用已经运行(无论是在前台还是后台),并且接收到本地推送通知时,则会调用`didReceiveLocalNotification:`方法。在这两个方法中,开发者可以根据具体需求编写相应的逻辑来处理推送通知。 ##### 2. 创建并...
iOS本地和推送通知编程指南是一份由Apple公司编写的官方文档,旨在指导开发者如何在iOS平台上实现和处理本地通知与推送通知。本地通知是应用程序在不需要服务器端支持的情况下,仅在用户的设备上触发的通知;而推送...
在iOS开发中,本地通知(UILocalNotification)是一种重要的特性,它允许应用在特定时间或者在用户不直接与应用交互时向用户发送消息。这个"iOS本地通知代码-UILocalNotification_Demo"压缩包文件应该包含一个示例...
在iOS开发中,本地通知和推送通知是两种用于在应用程序不在前台运行时提醒用户的重要机制。它们通常用于告知用户有新消息、即将到来的日程安排或者需要更新的数据等事件。本指南将介绍如何在iOS平台上实现本地通知和...
在iPhone开发中,本地通知和推送通知是两种不同类型的用户通知。本地通知是当应用程序正在运行或者不在前台时,由设备自身生成并展示给用户的通知。推送通知则来自远程服务器,当应用程序不在运行时,它由苹果的推送...
在iOS开发中,本地消息推送(Local Notification)是一种非常实用的功能,它允许应用程序在特定时间或触发特定事件时向用户发送提醒,即使应用程序不在前台运行。在这个“本地消息推送—闹钟实现...
在iOS中,通知分为本地通知(UILocalNotification)和远程通知(通常与Apple Push Notification Service, APNs相关)。本地通知主要适用于应用程序不在线或者设备离线时,例如设定闹钟、日程提醒等。而远程通知则由...
然而,随着iOS 8的发布,苹果引入了User Notification Framework(用户通知框架),对本地和远程推送通知进行了统一管理,这使得`UILocalNotification`的一些旧有使用方式不再适用。 在iOS 8及更高版本中,`...
在iOS开发中,本地推送(UILocalNotification)是一种非常实用的功能,它允许应用程序在特定时间或触发特定事件时向用户发送通知,而无需与远程服务器交互。在这个名为"Alarm-闹钟"的项目中,我们很显然看到是利用了...
在iOS应用开发中,本地推送(Local Notification)是一种重要的用户交互手段,它允许开发者在特定的时间或应用状态触发提醒,即使应用不在前台运行也能触达用户。本教程将深入讲解如何使用`UILocalNotification`来...
iOS本地推送是一种无需服务器参与,应用程序在本地触发通知的功能,常用于提醒用户某些特定时间或事件的发生。在iOS中,我们使用`UILocalNotification`类来实现本地推送。以下是对标题和描述中涉及的知识点的详细...
`UILocalNotification`不仅可以让用户在指定的时间接收到提醒,还可以设置提醒的重复周期、声音、显示的标题和消息等内容。 首先,我们需要了解`UILocalNotification`的基本结构。一个本地通知对象包含了以下主要...
【标题】"UILocalNotificationDemo" 是一个基于Objective-C编程语言的本地推送通知示例项目,主要用于演示如何在iOS应用中实现一个简单的闹钟功能。这个Demo为开发者提供了清晰的步骤,展示了如何设置、触发以及取消...
5. **设置推送权限**:在iOS中,用户需要给予应用获取推送通知的权限。在`application(_:didFinishLaunchingWithOptions:)`中,调用`requestUserNotificationSettings:`来请求权限。 ```objc - (BOOL)application:...
iOS 10 中废弃了 UILocalNotification ( UIKit Framework ) 这个类,采用了全新的 UserNotifications Framework 来推送通知,从此推送通知也有了自己的标签 UN (这待遇真是没别人了),以及对推送功能的一系列...