iOS Local Notification学习笔记
2015-07-10 14:51
453 查看
在iOS4.0后Apple加入了Local Notification。这里是NSLocaleNotification的Class Reference http://developer.apple.com/library/ios/#documentation/iPhone/Reference/UILocalNotification_Class/Reference/Reference.html
如何注册一个Notification
[cpp] view
plaincopy
UILocalNotification *localNotification = [[UILocalNotification alloc] init];
// 设置notification的属性
localNotification.fireDate = [startTimePicker.picker.date dateByAddingTimeInterval:36000]; //出发时间
localNotification.alertBody = @"Time To Schedule Our Service"; // 消息内容
localNotification.repeatInterval = NSSecondCalendarUnit; // 重复的时间间隔
localNotification.soundName = UILocalNotificationDefaultSoundName; // 触发消息时播放的声音
localNotification.applicationIconBadgeNumber = 1; //应用程序Badge数目
//设置随Notification传递的参数
NSDictionary *infoDict = [NSDictionary dictionaryWithObjectsAndKeys:@"reminder", @"notificationId", @"phone", txtPhone.text, nil];
localNotification.userInfo = infoDict;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification]; //注册
[localNotification release]; //释放
遍历已经注册的所有LocaleNotification
[cpp] view
plaincopy
NSArray *notifications = [[UIApplication sharedApplication] scheduledLocalNotifications];
for (UILocalNotification *notification in notifications ) {
if( [[notification.userInfo objectForKey:@"source"] isEqualToString:@"dailyReminder"] ) {
[[UIApplication sharedApplication] cancelLocalNotification:notification];
break;
}
}
撤销LocaleNotification
[cpp] view
plaincopy
[[UIApplication sharedApplication] cancelAllLocalNotifications]; // 撤销所有的Notification
<pre name="code" class="cpp">[[UIApplication sharedApplication] cancelLocalNotification:notification]; // 撤销某个Notificiation,若要删除某个特定的Notification,则可以在UserInfo中加入标记,遍历所有的Notification来删除。</pre>
<pre></pre>
<p></p>
<pre></pre>
<strong></strong>
<p></p>
<p></p>
<p><strong>响应事件</strong></p>
<p>当Notification被触发后,你的应用需要对此作出反应。应用此时可能会处于以下几个状态:</p>
<ul>
<li>在前台运行 - 当应用在前台运行时,则ApplicationDelegate的didReceiveLocalNotification会被调用。<pre name="code" class="cpp">- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification {
NSLog(@"Notification Body: %@", notification.alertBody);
NSLog(@"%@", notification.userInfo);
application.applicationIconBadgeNumber = notification.applicationIconBadgeNumber-1;
}</pre><br>
</li><li>在后台运行 - 用户可以看到类似Push Notification的提醒,若用户选择查看提醒详情,则应用通过 ApplicationDelegate的didFinishLaunchingWithOptions进入<br>
<pre name="code" class="cpp">- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
UILocalNotification *localNotification =
[launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];
if (localNotification) {
NSLog(@"Notification Body: %@",localNotification.alertBody);
NSLog(@"%@", localNotification.userInfo);
application.applicationIconBadgeNumber = localNotification.applicationIconBadgeNumber-1;
}
// set up everything else
return YES;
</pre>}<br>
</li></ul>
<div style="padding-top:20px">
<p style="font-size:12px;">版权声明:本文为博主原创文章,未经博主允许不得转载。</p>
</div>
如何注册一个Notification
[cpp] view
plaincopy
UILocalNotification *localNotification = [[UILocalNotification alloc] init];
// 设置notification的属性
localNotification.fireDate = [startTimePicker.picker.date dateByAddingTimeInterval:36000]; //出发时间
localNotification.alertBody = @"Time To Schedule Our Service"; // 消息内容
localNotification.repeatInterval = NSSecondCalendarUnit; // 重复的时间间隔
localNotification.soundName = UILocalNotificationDefaultSoundName; // 触发消息时播放的声音
localNotification.applicationIconBadgeNumber = 1; //应用程序Badge数目
//设置随Notification传递的参数
NSDictionary *infoDict = [NSDictionary dictionaryWithObjectsAndKeys:@"reminder", @"notificationId", @"phone", txtPhone.text, nil];
localNotification.userInfo = infoDict;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification]; //注册
[localNotification release]; //释放
遍历已经注册的所有LocaleNotification
[cpp] view
plaincopy
NSArray *notifications = [[UIApplication sharedApplication] scheduledLocalNotifications];
for (UILocalNotification *notification in notifications ) {
if( [[notification.userInfo objectForKey:@"source"] isEqualToString:@"dailyReminder"] ) {
[[UIApplication sharedApplication] cancelLocalNotification:notification];
break;
}
}
撤销LocaleNotification
[cpp] view
plaincopy
[[UIApplication sharedApplication] cancelAllLocalNotifications]; // 撤销所有的Notification
<pre name="code" class="cpp">[[UIApplication sharedApplication] cancelLocalNotification:notification]; // 撤销某个Notificiation,若要删除某个特定的Notification,则可以在UserInfo中加入标记,遍历所有的Notification来删除。</pre>
<pre></pre>
<p></p>
<pre></pre>
<strong></strong>
<p></p>
<p></p>
<p><strong>响应事件</strong></p>
<p>当Notification被触发后,你的应用需要对此作出反应。应用此时可能会处于以下几个状态:</p>
<ul>
<li>在前台运行 - 当应用在前台运行时,则ApplicationDelegate的didReceiveLocalNotification会被调用。<pre name="code" class="cpp">- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification {
NSLog(@"Notification Body: %@", notification.alertBody);
NSLog(@"%@", notification.userInfo);
application.applicationIconBadgeNumber = notification.applicationIconBadgeNumber-1;
}</pre><br>
</li><li>在后台运行 - 用户可以看到类似Push Notification的提醒,若用户选择查看提醒详情,则应用通过 ApplicationDelegate的didFinishLaunchingWithOptions进入<br>
<pre name="code" class="cpp">- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
UILocalNotification *localNotification =
[launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];
if (localNotification) {
NSLog(@"Notification Body: %@",localNotification.alertBody);
NSLog(@"%@", localNotification.userInfo);
application.applicationIconBadgeNumber = localNotification.applicationIconBadgeNumber-1;
}
// set up everything else
return YES;
</pre>}<br>
</li></ul>
<div style="padding-top:20px">
<p style="font-size:12px;">版权声明:本文为博主原创文章,未经博主允许不得转载。</p>
</div>
相关文章推荐
- iOS开发系列--通知与消息机制
- iOS:机型参数、sdk、xcode各版本
- iOS可续订订阅测试数据
- iOS:界面适配(三)--iPhone不同机型适配 6/6plus 前
- iOS:界面适配(二)--Universal通用程序 iPhone、iPad适配(关于xib)
- iOS:界面适配(一)--Universal通用程序 iPhone、iPad适配(方法)
- 在开发iOS程序时对日期处理的总结
- 在开发iOS程序时对日期处理的总结
- iOS PAD编写 POPOver 使用tableviewcontroller的两种操作方式,代理和消息通知
- 关于IOS的Autolayout特性的理解以及使用
- 转【iOS应用安全】游戏安全之IPA破解原理及防御
- 定制iOS 7中的导航栏和状态栏
- iOS Developer Library 官方文档
- IOS如何访问通讯录
- iOS 开发中问题 ——对button进行圆角处理,绘制边框
- IOS上AudioSession设置, 切换扬声器和听筒详解 .
- ios 调用系统设置,并进入相关的设置项
- iOS动画animateWithDuration:animations:无法显示动画的问题
- 蓝鸥苹果iOS开发者博客
- iOS自定义Button如何在按钮中把文字放左边,图片放右边