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 的本地通知的更多相关文章

  1. Android 和iOS 创建本地通知

    1 Android 中的发送本地通知的逻辑如下 先实例化Notification.Builder,再用builder创建出具体的Notification,创建时要指定好启动用的PendingInten ...

  2. iOS中 本地通知/本地通知详解 韩俊强的博客

    布局如下:(重点讲本地通知) iOS开发者交流QQ群: 446310206 每日更新关注:http://weibo.com/hanjunqiang  新浪微博 Notification是智能手机应用编 ...

  3. IOS开发-本地通知

    // 注册 发送通知的方法 -(void)pushNotfation{ //--------------初始化本地通知 alloc init 虽然是UI控件 但继承NSObject UILocalNo ...

  4. iOS创建本地通知和删除对应的通知,工作日通知

    本文的代码主要是:创建本地通知,删除对应的本地通知,创建工作日闹钟 直接上代码: // // ViewController.m // LocalNSNotification // // Created ...

  5. iOS开发本地通知

    /* 本地通知:不通过网络,在本地实现的通知,自己发给自己 远程通知:必须通过网络,使用推送技术(APNs),实现通知 本地通知: 1.要完成可以接收的通知形式的注册 2.具体通知的设置 3.发送通知 ...

  6. IOS本地通知:UILocalNotification使用记录

    第一次接触IOS的本地通知的使用,看到别人写的一个比较详细的记录,自己整理过来,方便以后再次使用和拓展: 1.创建一个本地通知,添加到系统: // 初始化本地通知对象 UILocalNotificat ...

  7. iOS 10 UserNotification框架解析 – 本地通知

    iOS 10以前的通知比较杂乱,把本地通知和远程通知分开了,诞生了许多功能类似的API,很容易让初学者犯迷糊.而iOS 10的通知把API做了统一,利用独立的UserNotifications.fra ...

  8. cocos2d-js 安卓自定义本地通知功能

    安卓新手,笔记有理解不当的地方望指出,经过几天折腾终于可以实现类似ios的本地通知功能(ios就几行代码),可能有第三方sdk可以方便实现,暂时没去找 思路: 1. startService 和bin ...

  9. iOS(本地通知与远程通知)

    iOS 推送通知有两种:本地推送.远程推送. 本地推送 :  在不需要联网的情况下,由APP发出推送,常用于某一时刻的通知,如闹钟.本地通送有局限性在于当APP处于后台或者退出时就无法发出通知. 远程 ...

随机推荐

  1. Mybatis实现批量删除

    知识点:当传入参数为数组时,XX.xml文件中,标签为collection属性 参考博客:https://blog.csdn.net/javaee_sunny/article/details/5251 ...

  2. Pandas 高级应用 数据分析

    深入pandas 数据处理 三个阶段 数据准备 数据转化 数据聚合 数据准备 加载 组装 合并 - pandas.merge() 拼接 - pandas.concat() 组合 - pandas.Da ...

  3. Java实习一

    简单的二元一次方程求解 import java.lang.Math; import java.util.Scanner; public class Solve{ public static void ...

  4. HTTP-API-DESIGN 怎样设计一个合理的 HTTP API (一)

    这个附件的幻灯片是我最近给团队分享关于设计 HTTP API 的时候,结合 这篇 和我们团队历史上的一些错误,总结出来一些适合内部的经验. 简介. 这次分享主要关注以下几部分: HTTP + JSON ...

  5. Python基础笔记系列八:字符串的运算和相关函数

    本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 字符串的运算1.字符串的加法和乘法 python中不但支持字符串相加,还支 ...

  6. perl I/O和缓存的关系

    最近在查看日志时,突然发现信息没有及时写入日志,研究了很久,突然醒悟:原来是print的缓存原因. 顺着这个详细了解了下perl里的IO缓存机制: 1.正常情况下,操作系统的读写都有缓存(buffer ...

  7. setTimout执行时间

    在浏览器中,JavaScript引擎是单线程执行的.也就是说,在同一时间内,只能有一段代码被JavaScript引擎执行.页面加载时,JavaScript引擎会顺序执行页面上所有JavaScript代 ...

  8. Registering an Application to a URI Scheme

    https://msdn.microsoft.com/en-us/library/aa767914(VS.85).aspx Registering an Application to a URI Sc ...

  9. git 提交作业流程

    git 提交作业流程,主要分为4个步骤 # 拉取远程git最新版本到本地,每次都可以先执行这条命令,因为会有其他同学更新仓库 git pull # add需要上传的文件,那个文件修改或者新增的,就ad ...

  10. Codeforces Round #378 (Div. 2)F - Drivers Dissatisfaction GNU

    http://codeforces.com/contest/733/problem/F 题意:给你一些城市和一些路,每条路有不满意程度和每减少一点不满意程度的花费,给出最大花费,要求找出花费小于s的最 ...