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. 如何控制Bean对象的作用域,默认作用域是什么

    1.可以通过<bean>定义的scope属性指定Bean对象的作用域或者使用注解@Scope指定Bean对象的作用域. 2.默认Bean对象的作用域为singleton.

  2. sass学习笔记--摘录

    //$a: Helvetica, sans-serif //$b: #333 // //body //font: 100% $a //color: $b //$a: red //body //colo ...

  3. 【Luogu3807】【模板】卢卡斯定理(数论)

    题目描述 给定\(n,m,p(1≤n,m,p≤10^5)\) 求 \(C_{n+m}^m mod p\) 保证\(P\)为\(prime\) \(C\)表示组合数. 一个测试点内包含多组数据. 输入输 ...

  4. wso2ESB - 在eclipse中启用调试模式

    最近在使用wso2ESB,记录一下使用过程中碰到的坑,先写一篇调试的(前面的工具安装就不介绍了,既然想用调试了说明你已经看过一部分文档了),以后可能会介绍其他功能的使用. 在wso2 ei的文档中,介 ...

  5. 【learning】[待完善]关于辛普森公式的一点想法

    [吐槽] 嗯一开始接触到这个东西其实是因为某道凸包的题目好像可以用这个奇妙的方法来算 但其实了解也不是很深,只是觉得这个东西十分有意思, 所以先稍微写一下自己的想法,了解更多之后慢慢完善 [正题] 首 ...

  6. ThreadLocal用例之周期为一次请求的变量

    public class RecordedLocal { private static ThreadLocal<Recorded> local = new ThreadLocal<R ...

  7. JavaScript 变量屏蔽

    不同作用域中相同名称的变量就会触发变量屏蔽: { let x = {color:"blue"}; let y = x; let z = 3; { //重复定义x,所以对全局变量x进 ...

  8. 【重要】使用Git命令行上传到GitHub上

    [本人GitHub账号:] 用户名:chenhongshuang 密码:shuangshuang6300 邮箱:2452420371@qq.com 进入GitHub账号后 1·新建项目文件名称例dem ...

  9. 来自后端的突袭? --浅尝最新开源的C# Web引擎 Blazor

    在今年年初, 恰逢新春佳节临近的时候. 微软给全球的C#开发者们, 着实的送上了一分惊喜. 微软正式开源Blazor ,将.NET带回到浏览器. 这个小惊喜, 迅速的在dotnet开发者中间传开了. ...

  10. 剑指Offer-不用加减乘除做加法

    package Other; /** * 不用加减乘除做加法 * 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. * 思路:位运算 * 1.两个数异或:相当于每一位相加 ...