IOS 本地通知 UILocalNotification

1、增加一个本地推送
//设置20秒之后 
NSDate *date = [NSDate dateWithTimeIntervalSinceNow: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上的红色圈中的数子
        noti.applicationIconBadgeNumber = 1;
        //设置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,干一些你想做的事情了
application.applicationIconBadgeNumber -= 1;
}
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;
        }
}

当有电话进来或者锁屏,这时你的应用程会挂起,在这时,UIApplicationDelegate委托会收到通知,调用 applicationWillResignActive 方法,你可以重写这个方法,做挂起前的工作,比如关闭网络,保存数据。

[java] view plaincopyprint?

- (void)applicationWillResignActive:(UIApplication*)application{  
/*添加你自己的挂起前准备代码*/  
}

    当你的程序被挂起后他不会在后台运行。
    二、复原
    当程序复原时,另一个名为 applicationDidBecomeActive 委托方法会被调用,在此你可以通过之前挂起前保存的数据来恢复你的应用程序:

    [java] view plaincopyprint?

    - (void)applicationDidBecomeActive:(UIApplication*)application{  
    /*添加你的恢复代码*/  
    }

      注意:应用程序在启动时,在调用了 applicationDidFinishLaunching 方法之后也会调用 applicationDidBecomeActive 方法,所以你要确保你的代码能够分清复原与启动,避免出现逻辑上的bug。
      三、终止
      当用户按下按钮,或者关机,程序都会被终止。当一个程序将要正常终止时会调用 applicationWillTerminate 方法。但是如果长主按钮强制退出,则不会调用该方法。这个方法该执行剩下的清理工作,比如所有的连接都能正常关闭,并在程序退出前执行任何其他的必要的工作:

      [java] view plaincopyprint?

      - (void)applicationWillTerminate:(UIApplication*)application{  
      /*在这里添加退出前的清理代码以及其他工作代码*/  
      }
      时间: 2024-11-15 12:31:02

      IOS 本地通知 UILocalNotification的相关文章

      IOS 本地通知UILocalNotification

      //发送通知    UILocalNotification *notification=[[UILocalNotification alloc] init];       if (notification!=nil) {         NSDate *now=[NSDate new];         notification.fireDate=[now dateByAddingTimeInterval:10];//10秒后通知        notification.repeatInterv

      iOS本地通知UILocalNotification

      1.本地通知的定义和使用: 本地通知是UILocalNotification的实例,主要有三类属性: scheduled time,时间周期,用来指定iOS系统发送通知的日期和时间: notification type,通知类型,包括警告信息.动作按钮的标题.应用图标上的badge(数字标记)和播放的声音: 自定义数据,本地通知可以包含一个dictionary类型的本地数据. 对本地通知的数量限制,iOS最多允许最近本地通知数量是64个,超过限制的本地通知将被iOS忽略.  代码如下 复制代码

      iOS 浅谈本地通知 UILocalNotification

      1.创建本地通知 UILocalNotification *local = [[UILocalNotification alloc] init]; 2.设置通知显示的时间 local.fireDate = [NSDate date]; 3.设置默认时区 local.timeZone = [NSTimeZone defaultTimeZone]; 4.设置提示内容 local.alertBody = @JPG下载完成,请即时查看!; 5.这个通知到时间时,你的应用程序右上角显示的数字. local

      IOS 本地通知

      在苹果的Mac OSX 和IOS开发的API中有三个不同的"通知",包括:广播通知,本地通知和推送通知. 本地通知只是应用所在设备上给用户通知,而推送通知是远程通知,他是由远程服务器推送过来的 本节主要是讲的本地通知,虽然本地通知并没有任何的网络通信,但是他在编程方面与后面要介绍的推送通知非常相似.我们的例子中有三个按钮,"计划通知开始"按钮开启计划通知,他在10秒钟后到达."停止所有计划通知"按钮式停止和取消已经开始的计划通知."立刻

      ios推送:本地通知UILocalNotification

        转载自:http://www.2cto.com/kf/201403/285612.html 在去年做过一个小App,其中使用的关键功能就是向用户发送本地通知,可惜当时没有写博客的习惯,所以没有将对应的知识记录下来.最近又遇到了该功能的使用,这一次果断写个博客做下有关UILocalNotification的笔记. 首先是添加一个本地通知到系统中,代码如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 2

      iOS本地通知:UILocalNotification

      最近在做一个电商的APP,话说今年电商很火啊. 用到了本地通知,特此整理一下 添加一个本地通知到系统中,代码如下: // 初始化本地通知对象 UILocalNotification *notification = [[UILocalNotification alloc] init]; if (notification) { // 设置通知的提醒时间 NSDate *currentDate = [NSDate date]; notification.timeZone = [NSTimeZone d

      【iOS开发-119】ipa打包、单元测试test、本地通知UILocalNotification

      (1)ipa打包,可以用Xcode,也可以用iTunes,用后者比较快. 具体教程:使用XCode和iTunes打包ipa i OS_ipa打包的方法 (2)单元测试(一般用于测试某一个方法是否可行等等) --轻量化 --和程序target是单独分开的 --比较直观快读地知道测试结果 相对而言,还有集群测试(一般测试一些模块和功能).压力测试(加大数据或者用户进行测试) (3)本地通知 #import "ViewController.h" @interface ViewControll

      xamarin.ios 本地通知推送

      由于ios10版本以后UILocalNotification被标为弃用了,所以要添加新的本地通知推送功能,下面提供一些代码参考. 一.先在AppDelegate.cs上注册本地通知推送功能. 1 public override bool FinishedLaunching(UIApplication app, NSDictionary options) 2 { 3 global::Xamarin.Forms.Forms.Init(); 4 global::ZXing.Net.Mobile.For

      本地通知 UILocalNotification

      发送一个本地通知 // MARK:本地推送     func sendNotification(time: Double, title: String, remindId: NSNumber) {               var notification = UILocalNotification()         notification.fireDate = NSDate(timeIntervalSinceNow: time)         notification.timeZone