iOS本地通知:UILocalNotification

最近在做一个电商的APP,话说今年电商很火啊。 用到了本地通知,特此整理一下

添加一个本地通知到系统中,代码如下:

// 初始化本地通知对象
UILocalNotification *notification = [[UILocalNotification alloc] init];
if (notification) {
    // 设置通知的提醒时间
    NSDate *currentDate   = [NSDate date];
    notification.timeZone = [NSTimeZone defaultTimeZone]; // 使用本地时区
    notification.fireDate = [currentDate dateByAddingTimeInterval:5.0];

    // 设置重复间隔
    notification.repeatInterval = kCFCalendarUnitDay;

    // 设置提醒的文字内容
    notification.alertBody   = @"Wake up, man";
    notification.alertAction = NSLocalizedString(@"该吃药了", nil);

    // 通知提示音 使用默认的
    notification.soundName= UILocalNotificationDefaultSoundName;

    // 设置应用程序右上角的提醒个数
    notification.applicationIconBadgeNumber++;

    // 设定通知的userInfo,用来标识该通知
    NSMutableDictionary *aUserInfo = [[NSMutableDictionary alloc] init];
    aUserInfo[kLocalNotificationID] = @"LocalNotificationID";
    notification.userInfo = aUserInfo;

    // 将通知添加到系统中
    [[UIApplication sharedApplication] scheduleLocalNotification:notification];
}

在APPDelegate.m中 加入接受本地通知的代码    :

在收到通知后,调用程序委托中的下列方法处理://当然方法中可以是跳转到指定页面等方式,这里是一个弹出框

-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification{
    NSLog(@"Application did receive local notifications");

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Hello" message:@"welcome" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
    [alert show];
}

最近看大牛的博客,说是本地通知在APP卸载后,还会存在系统中,

可以看一下,打印一下所有的,验证一下

1
2
NSArray *localNotifications = [[UIApplication sharedApplication] scheduledLocalNotifications];
NSLog(@"%@", localNotifications);

那么怎么删除本地通知呢,大牛也给出了方法

取消方法分为两种。

第一种比较暴力,直接取消所有的本地通知:

[[UIApplication sharedApplication] cancelAllLocalNotifications];

第二种方法是针对某个特定通知的:

- (void)cancelLocalNotification:(UILocalNotification *)notification NS_AVAILABLE_IOS(4_0);

这时就需要通知有一个标识,这样我们才能定位是哪一个通知。可以在notification的userInfo(一个字典)中指定。

例如:

-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification{
    NSLog(@"Application did receive local notifications");

    // 取消某个特定的本地通知
    for (UILocalNotification *noti in [[UIApplication sharedApplication] scheduledLocalNotifications]) {
        NSString *notiID = noti.userInfo[kLocalNotificationID];
        NSString *receiveNotiID = notification.userInfo[kLocalNotificationID];
        if ([notiID isEqualToString:receiveNotiID]) {
            [[UIApplication sharedApplication] cancelLocalNotification:notification];
            return;
        }
    }

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Hello" message:@"welcome" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
    [alert show];
}
时间: 2024-10-21 00:30:51

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.增加一个本地推送 //设置20秒之后  NSDate *date = [NSDate dateWithTimeIntervalSinceNow:20];     //chuagjian一个本地推送     UILocalNotification *noti = [[[UILocalNotification alloc] init] autorelease];     if (noti) {         //设置推送时间         noti.fireDate = date;     

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开发-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