本地通知

原创 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;




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

Android通知实例

  • 2017年11月28日 11:07
  • 15.96MB
  • 下载

NotificationManager 通知栏(自调用)

android ——通知管理 1 public class MainActivity extends AppCompatActivity { 2 3 @Ove...

按键蓝牙通知(NRF51822)

  • 2017年09月20日 15:55
  • 2.13MB
  • 下载

Android 通知栏Notification的整合 全面学习 (一个DEMO让你完全了解它)

在android的应用层中,涉及到很多应用框架,例如:Service框架,Activity管理机制,Broadcast机制,对话框框架,标题栏框架,状态栏框架,通知机制,ActionBar框架等等。 ...
  • yczz
  • yczz
  • 2014年06月04日 13:26
  • 9551

极光发送消息通知

  • 2017年01月11日 17:50
  • 245KB
  • 下载

关于_linux外部中断驱动异步通知应用程序

1,file 1,-> ent_test.c /* * file ent_test.c * Copyright by jiangdou QQ:344283973 * * RK3188 ENT...

工程变更通知模板

  • 2017年02月20日 10:49
  • 49KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:本地通知
举报原因:
原因补充:

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