1、增加一个本地推送
//设置20秒之后 

];

//chuagjian一个本地推送

UILocalNotification *noti =
[[[UILocalNotification alloc] init] autorelease];

if (noti) {

//设置推送时间

noti.fireDate = date;

//设置时区

noti.timeZone = [NSTimeZone defaultTimeZone];

//设置重复间隔

noti.repeatInterval = NSWeekCalendarUnit;

//推送声音

noti.soundName = UILocalNotificationDefaultSoundName;

//内容

noti.alertBody = @"推送内容";

//显示在icon上的红色圈中的数子

;

//设置userinfo 方便在之后需要撤销的时候使用

NSDictionary *infoDic = [NSDictionary dictionaryWithObject:@"name" forKey:@"key"];

noti.userInfo = infoDic;

//添加推送到uiapplication

UIApplication *app = [UIApplication sharedApplication];

[app scheduleLocalNotification:noti];

}

2、程序运行时接收到本地推送消息

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

{

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"接收到本地提醒 in
app"

message:notification.alertBody

delegate:nil

cancelButtonTitle:@"确定"

otherButtonTitles:nil];

[alert show];

//这里,你就可以通过notification的useinfo,干一些你想做的事情了

;

}

3、取消一个本地推送

UIApplication *app = [UIApplication sharedApplication];

//获取本地推送数组

NSArray *localArr = [app scheduledLocalNotifications];

//声明本地通知对象

UILocalNotification *localNoti;

if (localArr) {

for (UILocalNotification *noti in localArr) {

NSDictionary *dict = noti.userInfo;

if (dict) {

NSString *inKey = [dict objectForKey:@"key"];

if ([inKey isEqualToString:key]) {

if (localNoti){

[localNoti release];

localNoti = nil;

}

localNoti = [noti retain];

break;

}

}

}

//判断是否找到已经存在的相同key的推送

if (!localNoti) {

//不存在 初始化

localNoti = [[UILocalNotification alloc] init];

}

if (localNoti && !state) {

//不推送 取消推送

[app cancelLocalNotification:localNoti];

[localNoti release];

return;

}

}


  1. 第一步:创建本地推送
  2. // 创建一个本地推送
  3. UILocalNotification *notification = [[[UILocalNotification alloc] init] autorelease];
  4. //设置10秒之后
  5. ];
  6. if (notification != nil) {
  7. // 设置推送时间
  8. notification.fireDate = pushDate;
  9. // 设置时区
  10. notification.timeZone = [NSTimeZone defaultTimeZone];
  11. // 设置重复间隔
  12. notification.repeatInterval = kCFCalendarUnitDay;
  13. // 推送声音
  14. notification.soundName = UILocalNotificationDefaultSoundName;
  15. // 推送内容
  16. notification.alertBody = @"推送内容";
  17. //显示在icon上的红色圈中的数子
  18. ;
  19. //设置userinfo 方便在之后需要撤销的时候使用
  20. NSDictionary *info = [NSDictionary dictionaryWithObject:@"name"forKey:@"key"];
  21. notification.userInfo = info;
  22. //添加推送到UIApplication
  23. UIApplication *app = [UIApplication sharedApplication];
  24. [app scheduleLocalNotification:notification];
  25. }
  26. 第二步:接收本地推送
  27. - (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification*)notification{
  28. UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"iWeibo" message:notification.alertBody delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil];
  29. [alert show];
  30. // 图标上的数字减1
  31. ;
  32. }
  33. 第三步:解除本地推送
  34. // 获得 UIApplication
  35. UIApplication *app = [UIApplication sharedApplication];
  36. //获取本地推送数组
  37. NSArray *localArray = [app scheduledLocalNotifications];
  38. //声明本地通知对象
  39. UILocalNotification *localNotification;
  40. if (localArray) {
  41. for (UILocalNotification *noti in localArray) {
  42. NSDictionary *dict = noti.userInfo;
  43. if (dict) {
  44. NSString *inKey = [dict objectForKey:@"key"];
  45. if ([inKey isEqualToString:@"对应的key值"]) {
  46. if (localNotification){
  47. [localNotification release];
  48. localNotification = nil;
  49. }
  50. localNotification = [noti retain];
  51. break;
  52. }
  53. }
  54. }
  55. //判断是否找到已经存在的相同key的推送
  56. if (!localNotification) {
  57. //不存在初始化
  58. localNotification = [[UILocalNotification alloc] init];
  59. }
  60. if (localNotification) {
  61. //不推送 取消推送
  62. [app cancelLocalNotification:localNotification];
  63. [localNotification release];
  64. return;
  65. }
  66. }

本地通知UILocalNotification的更多相关文章

  1. IOS 本地通知 UILocalNotification

    IOS 本地通知 UILocalNotification [本文章第四部分中的代码逻辑来自网上的借鉴,并非我自己原创] 大概一个月前,我开始跟着做IOS项目了.学习C++,了解Objective-C, ...

  2. 本地通知-UILocalNotification

    第一步:创建本地推送 本地通知 UILocalNotification // 创建⼀一个本地推送 UILocalNotification * notification = [[UILocalNotif ...

  3. ios推送:本地通知UILocalNotification

    Notification是智能手机应用编程中非常常用的一种传递信息的机制,而且可以非常好的节省资源,不用消耗资源来不停地检查信息状态(Pooling),在iOS下应用分为两种不同的Notificati ...

  4. IOS 本地通知UILocalNotification

    //发送通知    UILocalNotification *notification=[[UILocalNotification alloc] init];       if (notificati ...

  5. iOS 注冊本地通知(推送)

    注:按Home键让App进入后台执行时.方可查看通知. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithO ...

  6. iOS 进阶---推送通知之本地通知

    1.推送通知的2种方式 1)本地推送通知(Local Notification) 2)远程推送通知(Remote Notification) 2.通知的作用 可以让不在前台运行的app,告知用户app ...

  7. iOS开发本地通知

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

  8. iOS10以前的本地通知和远程通知

    一.简介 分为本地推送和远程推送2种.可以在应用没有打开甚至手机锁屏情况下给用户以提示.它们都需要注册,注册后系统会弹出提示框(如下图)提示用户是否同意,如果同意则正常使用:如果用户不同意则下次打开程 ...

  9. UILocalNotification本地通知的使用方法

    本文所写方法主要应用UILocalNotification达到本地推送通知栏信息 取消了其他教程里过期的UIAlertView方法 使用UILocalNotification主要分为创建 调用 取消 ...

随机推荐

  1. RobotFramework自动化测试框架的基础关键字(二)

    1.1.1        如何快速查询某一个关键字的API说明 鼠标选中我们关键字,同时按住Ctrl+Alt键,即可出来该关键字的帮助API以及使用示例 1.1.2        如何快速补全关键字 ...

  2. 描述Spring Web MVC的工作流程

    Spring Web MVC的共工作流程如下: 1.浏览器发出Spring mvc请求,请求给前端控制器 DispatcherServlet处理. 2.控制器通过HandlerMapping维护的请求 ...

  3. 三天来都在写项目;今天开始学习了js

    JavaScript 一种脚本语言,他描述了网页的行为:他是和java一种完全不同的语言 JavaScript的输出写法有四种: JavaScript的语言的变量必须以字母.美元符号$ 或者下划线_来 ...

  4. 元素(WebElement)-----Selenium快速入门(三)

    上一篇<元素定位-----Selenium快速入门(二)>说了,如何定位元素,本篇说说找到的元素(WebElement)该怎么用. WebElement常用方法:  返回值  方法名  说 ...

  5. 【HNOI2004】敲砖块(动态规划)

    越来越懒了,不想粘题目 题解 样例的输入是个很好的提醒, 把他往左边对齐之后 如果要打掉某个位置,那么必须要打掉右上方的所有砖 然后就很明显的一个DP了.... #include<iostrea ...

  6. [HDU5765]Bonds

    题面 题意 给出一张\(n\)点\(m\)边无向连通图,求每条边出现在多少个割集中. \(n\le20,m\le\frac{n(n-1)}{2}\) sol 所谓割集,就是指把\(n\)个点分成两个集 ...

  7. Luogu3527:[POI2011]MET-Meteors

    题面 Luogu Sol 整体二分 比较简单,当练手题 每次树状数组统计 # include <bits/stdc++.h> # define RG register # define I ...

  8. 快速开发 HTML5 WebGL 的 3D 斜面拖拽生成模型

    前言 3D 场景中的面不只有水平面这一个,空间是由无数个面组成的,所以我们有可能会在任意一个面上放置物体,而空间中的面如何确定呢?我们知道,空间中的面可以由一个点和一条法线组成.这个 Demo 左侧为 ...

  9. 封装好的MD5加密

    /** * 不可逆加密类 为密码提供不可逆的加密运算,使用MD5算法 * * 使用方法: MD5 encrypt = new MD5(); encrypt.getMD5ofStr(str); //返回 ...

  10. Hadoop之Secondary NameNode

    NameNode存储文件系统的变化作为log追加在本地的一个文件里:这个文件是edits.当一个NameNode启动时,它从一个映像文件:FsImage,读取HDFS的状态,使用来自edits日志文件 ...