IOS 的本地通知
IOS 的本地通知
- (void)viewDidLoad
{
[super viewDidLoad];
UILocalNotification* localNotification = [[UILocalNotification alloc] init];
if(localNotification)
{
NSDate *now=[NSDate date];
localNotification.timeZone = [NSTimeZonedefaultTimeZone];
localNotification.repeatInterval =NSDayCalendarUnit;
localNotification.applicationIconBadgeNumber = 1;
localNotification.alertBody=@"该去吃晚饭了!";
localNotification.alertAction =NSLocalizedString(@"显示", nil);
NSDictionary* dic = [NSDictionarydictionaryWithObject:@"123" forKey:@"key"];
[localNotification setUserInfo:dic];
localNotification.fireDate = [nowdateByAddingTimeInterval:10];
// localNotification.fireDate = [NSDate dateWithTimeIntervalSinceNow:10];
localNotification.hasAction = YES;
// localNotification.repeatInterval = NSMinuteCalendarUnit;
localNotification.soundName =UILocalNotificationDefaultSoundName;
[[UIApplication sharedApplication]scheduleLocalNotification:localNotification];
[localNotification release];
}
//得到(24 * 60 * 60)即24小时之前的日期,dateWithTimeIntervalSinceNow:
NSDate* yesterday = [NSDatedateWithTimeIntervalSinceNow:-(24 * 60 * 60)];
NSLog(@"yesterday:%@",yesterday);
NSDateFormatter* dateFormat = [[NSDateFormatter alloc]init];
[dateFormat setDateFormat:@"YYYY-MM-dd hh:mm:ss"];
//计算 两个时间相隔多少秒
NSDate* date1 = [dateFormat dateFromString:[dateFormatstringFromDate:[NSDatedateWithTimeIntervalSinceNow:60*60*8]]];
NSLog(@"date1 = %@",date1);
NSDate* date2 =[NSDate dateWithTimeInterval:60*60*8sinceDate:[dateFormat dateFromString:@"2013-10-12 11:08:33"]] ;
NSLog(@"date2 = %@",date2);
NSTimeInterval timerInterVal = [date2timeIntervalSinceDate:date1];
NSLog(@"timerInterVal %f",timerInterVal);
}
//监听本地通知事件:退出程序后执行:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen]bounds]] autorelease];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
ViewController* view = [[ViewController alloc] init];
[self.window setRootViewController:view];
[view release];
//设置iCon 上的数字
application.applicationIconBadgeNumber = 0;
UILocalNotification* notification = [launchOptionsobjectForKey:UIApplicationLaunchOptionsAnnotationKey];
if(notification)
{
NSLog(@"didFinishLaunchingWithOptions");
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nilmessage:@"received E-mail" delegate:self cancelButtonTitle:@"OK"otherButtonTitles:nil];
[alert show];
[alert release];
}
[self.window makeKeyAndVisible];
return YES;
}
//监听本地通知事件:在没有退出程序的时候执行
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{
NSLog(@"%@",[notification.userInfo valueForKey:@"key"]);
if(application.applicationState == UIApplicationStateActive)
{
UIAlertView* alert = [[[UIAlertView alloc] initWithTitle:@""
message:@"事项提醒"
delegate:self
cancelButtonTitle:@"关闭"
otherButtonTitles:nil, nil] autorelease];
[alert show];
}
else
{
[[UIApplication sharedApplication] cancelAllLocalNotifications];
}
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
[[UIApplication sharedApplication] cancelAllLocalNotifications];
}
下面是写在类里面的
+(void)addLocalNotificationWithMessage:(NSString *)message
FireDate:(NSDate *) fireDate
AlarmKey:(NSString *)alarmKey
{
UILocalNotification *notification=[[UILocalNotification alloc] init];
if (notification!=nil) {
notification.fireDate=fireDate;
notification.timeZone=[NSTimeZone defaultTimeZone];
notification.soundName= UILocalNotificationDefaultSoundName;
notification.alertBody=message;
notification.hasAction = NO;
notification.userInfo=[[NSDictionary alloc]initWithObjectsAndKeys:alarmKey,@"AlarmKey", nil];
[[UIApplication sharedApplication] scheduleLocalNotification:notification];
}
[notification release];
}
+(void)deleteLocalNotification:(NSString *) alarmKey
{
NSArray * allLocalNotification=[[UIApplication sharedApplication]scheduledLocalNotifications];
for (UILocalNotification * localNotification in allLocalNotification) {
NSString * alarmValue=[localNotification.userInfoobjectForKey:@"AlarmKey"];
if ([alarmKey isEqualToString:alarmValue]) {
[[UIApplication sharedApplication]cancelLocalNotification:localNotification];
}
}
}
IOS 的本地通知的更多相关文章
- Android 和iOS 创建本地通知
1 Android 中的发送本地通知的逻辑如下 先实例化Notification.Builder,再用builder创建出具体的Notification,创建时要指定好启动用的PendingInten ...
- iOS中 本地通知/本地通知详解 韩俊强的博客
布局如下:(重点讲本地通知) iOS开发者交流QQ群: 446310206 每日更新关注:http://weibo.com/hanjunqiang 新浪微博 Notification是智能手机应用编 ...
- IOS开发-本地通知
// 注册 发送通知的方法 -(void)pushNotfation{ //--------------初始化本地通知 alloc init 虽然是UI控件 但继承NSObject UILocalNo ...
- iOS创建本地通知和删除对应的通知,工作日通知
本文的代码主要是:创建本地通知,删除对应的本地通知,创建工作日闹钟 直接上代码: // // ViewController.m // LocalNSNotification // // Created ...
- iOS开发本地通知
/* 本地通知:不通过网络,在本地实现的通知,自己发给自己 远程通知:必须通过网络,使用推送技术(APNs),实现通知 本地通知: 1.要完成可以接收的通知形式的注册 2.具体通知的设置 3.发送通知 ...
- IOS本地通知:UILocalNotification使用记录
第一次接触IOS的本地通知的使用,看到别人写的一个比较详细的记录,自己整理过来,方便以后再次使用和拓展: 1.创建一个本地通知,添加到系统: // 初始化本地通知对象 UILocalNotificat ...
- iOS 10 UserNotification框架解析 – 本地通知
iOS 10以前的通知比较杂乱,把本地通知和远程通知分开了,诞生了许多功能类似的API,很容易让初学者犯迷糊.而iOS 10的通知把API做了统一,利用独立的UserNotifications.fra ...
- cocos2d-js 安卓自定义本地通知功能
安卓新手,笔记有理解不当的地方望指出,经过几天折腾终于可以实现类似ios的本地通知功能(ios就几行代码),可能有第三方sdk可以方便实现,暂时没去找 思路: 1. startService 和bin ...
- iOS(本地通知与远程通知)
iOS 推送通知有两种:本地推送.远程推送. 本地推送 : 在不需要联网的情况下,由APP发出推送,常用于某一时刻的通知,如闹钟.本地通送有局限性在于当APP处于后台或者退出时就无法发出通知. 远程 ...
随机推荐
- [转载]Javassist 使用指南(一)
======================= 本文转载自简书,感谢原作者!. 原链接如下:https://www.jianshu.com/p/43424242846b =============== ...
- [BZOJ2091]The Minima Game
Description 给出N个正整数,AB两个人轮流取数,A先取.每次可以取任意多个数,直到N个数都被取走.每次获得的得分为取的数中的最小值,A和B的策略都是尽可能使得自己的得分减去对手的得分更大. ...
- C# 自动触发鼠标、键盘事件
要在C#程序中触发鼠标.键盘事件必须要调用windows函数. 一.鼠标事件的触发 1.引用windows函数mouse_event /// <summary> /// 鼠标事件 /// ...
- hdu 1241 搬寝室 水dp
搬寝室 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Problem Desc ...
- jQuery实际案例①——淘宝精品广告(鼠标触碰切换图片、自动轮播图片)
遇到的问题:自动轮播的实现,实质与轮播图一样儿一样儿的,不要被不同的外表所欺骗,具体的js代码如下:
- 修饰器Decorator
类的修饰 许多面向对象的语言都有修饰器(Decorator)函数,用来修改类的行为.目前,有一个提案将这项功能,引入了 ECMAScript. @testable class MyTestableCl ...
- Linux下部署 jar包
1.windows和linux执行jar命令是一样的,java -jar xxx.jar 2.使用nohup命令将jar程序设置成后台运行,运行日志输出到nohup.out,关闭窗口无影响 nohup ...
- VisualBrush
VisualBrush是一种比较特殊的笔刷,它的功能仍然是用来给元素填充图案,但它的内容却可以是各种控件(换言之:它可以使用各种控件来给元素填充图案). 你可以将它理解为一个普通的容器,但在它内部的所 ...
- angular directive restrict 的用法
E 表示该指令是一个element; A 表示该指令是attribute; C 表示该指令是class; M 表示该指令是注视 实例如下: 原帖:www.thinkster.io/angularjs/ ...
- 为cloudstack搭建ceph文件系统
1. 安装dell服务器, raid卡需要采用直通模式(non-raid); 各磁盘独立运行. 网络依赖硬件不同,使用万兆网卡或者两个千兆网卡做bonding6. 2. 配置host map(1 ...