本地通知

原创 2016年05月31日 14:21:57

在iOS下应用分为两种不同的notification种类,分别是本地和远程(APNS),本地notification是由iOS系统下notificationManager统一管理,我们只需要将组装好的本地通知对象添加到系统的notification管理队列中,系统会在指定的时间进行激发该通知。本地通知只能在前台后台触发,不能在其他状态下触发。

1.由于iOS8之后注册通知和之前不一样,所以要在AppDelegate的didFinishLaunchingWithOptions中进行判断:

#ifdef __IPHONE_8_0

    if ([[UIApplication sharedApplication]respondsToSelector:@selector(registerUserNotificationSettings:)]) {

        

        UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeSound |UIUserNotificationTypeAlert |UIUserNotificationTypeBadge categories:nil];

        [[UIApplication sharedApplication]registerUserNotificationSettings:settings];

        

    }else {


        //ios8.0之前

        UIRemoteNotificationType myTypes = UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound;

        [[UIApplication sharedApplication]registerForRemoteNotificationTypes:myTypes];

   

    }

#else

#endif

2.在AppDelegate中写接收通知的方法

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

    

    NSLog(@"%@",notification.userInfo);

    //在前台就不需要小红帽提醒

    application.applicationIconBadgeNumber = 0;

    

}

3.在ViewController中:

//创建本地通知对象

UILocalNotification *localNotification =[[UILocalNotification alloc]init];

//时间上的调度。时间有两种:一种是1970年以后的秒数 一种是2000年

localNotification.fireDate = [NSDate dateWithTimeIntervalSinceNow:10.0];//fireDate就是激发的准确时间

 //timeZone是通知激发的时间是否根据时区的改变而改变,如果是nil,通知会在一段时间后激发,而不是在某一确定的时间被激发

    //repeatInterval被重复激发的时间差,时间差会根据日历单位,例如每周,如果不设置将不会被重复

//    localNotification.timeZone

//    localNotification.repeatInterval

//内容

localNotification.alertBody = @"心情很美丽";

//其他内容

localNotification.applicationIconBadgeNumber = 1;

localNotification.userInfo = @{@"someKey":@"someValue"};

//注册

[[UIApplication sharedApplication]scheduleLocalNotification:localNotification];

//4.写到这里发现之前明明注册了小红帽却没有出来,这时就需要在appDelegate的

didFinishLaunchingWithOptions中写上一句话:

application.applicationIconBadgeNumber = 99;




版权声明:本文为博主原创文章,未经博主允许不得转载。

iOS10本地通知UserNotifications快速入门

iOS10更新变动最大的就是通知这部分了,新版通知变得更加统一,使用更加方便,设计更加自由。以前本地通知和远程推送是分开的,虽然这些到了iOS10都合在一起了,但是为了便于理解,我们还是把他俩分开来进...
  • mgr406176009
  • mgr406176009
  • 2016年11月28日 17:31
  • 542

iOS中 本地通知/本地通知详解 韩俊强的博客

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

iOS开发---本地通知(UILocalNotification)

iOS中通知机制又叫消息机制,其包括两类:一类是本地通知;另一类是推送通知,也叫远程通知。 本地通知是由本地应用触发的,它是基于时间行为的一种通知形式,例如闹钟定时、待办事项提醒,又或者一个应用在一...
  • qq_34195670
  • qq_34195670
  • 2016年07月12日 10:28
  • 3331

iOS开发(OC)——本地通知

1、创建本地通知UIApplication * application=[UIApplication sharedApplication]; //如果当前应用程序没有注册本地通知,需要注册 ...
  • liumude123
  • liumude123
  • 2016年08月17日 17:43
  • 341

swift 本地通知

AppDelegate.swift import UIKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationD...
  • callzjy
  • callzjy
  • 2016年11月19日 05:47
  • 905

iOS本地通知的实现

/*      @property(nonatomic,copy) NSDate *fireDate; // 设置本地推送的时间      @property(nonatomic,copy) N...
  • qq_27074387
  • qq_27074387
  • 2015年11月12日 14:58
  • 618

iOS本地通知——每天固定时间发送通知

那是一个闷热的夏天,我会想起被色魔张大妈统治的恐惧,和每天十点签到的高潮。。。。 一个每天固定时间本地通知的小代码 + (void)registerLocalNotification{名...
  • qq_35880238
  • qq_35880238
  • 2016年08月15日 18:54
  • 911

关于IOS9的本地通知方法

欢迎使用Markdown编辑器写博客做stone的本地通知,也就是连接之后,app进入后台或者锁屏,按下stone的按键,手机端需要有本地通知。 实现方法是: 1、需要实现后台APP BLE继续运...
  • fallune1
  • fallune1
  • 2015年12月09日 14:59
  • 1069

iOS 10前后两种本地通知

iOS 10前后的两种不同实现方式,注意是本地通知,不是远程通知
  • Cloudox_
  • Cloudox_
  • 2017年07月14日 15:45
  • 1752

ios开发之本地通知

概述: 在多数移动应用中任何时候都只能有一个应用程序处于活跃状态,如果其他应用此刻发生了一些用户感兴趣的那么通过通知机制就可以告诉用户此时发生的事情。ios中通知机制又叫消息机制,其包括两类:一类是...
  • m0_37177053
  • m0_37177053
  • 2017年10月09日 15:12
  • 116
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:本地通知
举报原因:
原因补充:

(最多只允许输入30个字)