1、推送通知的2种方式

1)本地推送通知(Local Notification)

2)远程推送通知(Remote Notification)

2、通知的作用

可以让不在前台运行的app,告知用户app内部发生了什么事情

3、使用场景

常用来定时提醒用户完成一些任务,比如清理垃圾、记账、买衣服、看电影、玩游戏

4、推送通知的5中不同的效果

1)在屏幕顶部显示一块横幅(显示具体内容)

2)在屏幕中间弹出一个UIAlertView(显示具体内容)

3)在锁屏界面显示一块横幅(锁屏状态下,显示具体内容)

4)更新app图标的数字(说明新内容的数量)

5)播放音效(提醒作用)

5、推送通知的主要事项

1)发出推送通知时,如果当前程序正运行在前台,那么推送通知就不会被呈现出来

2)点击推送通知后,默认会自动打开发出推送通知的app

3)不管app打开还是关闭,推送通知都能如期发出

6、什么是本地推送和应用场景

本地推送:就是不需要联网就能发出的推送通知(不需要服务器的支持)

应用场景:常用来定时提醒用户完成一些任务,比如清理垃圾、记账、买衣服、看电影、玩游戏

下面在代码中分析一下本地通知的各个属性:

1.在AppDelegate的.m文件中

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//1.iOS8需要添加请求用户的授权
if ([UIDevice currentDevice].systemVersion.floatValue >=8.0) {
UIUserNotificationSettings * settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge | UIUserNotificationTypeAlert | UIUserNotificationTypeSound categories:nil];
[application registerUserNotificationSettings:settings]; }
return YES;
}

2.在VC的.m文件中

 // 1.创建本地通知
UILocalNotification *localNote = [[UILocalNotification alloc] init]; // 1.1.设置什么时间弹出
localNote.fireDate = [NSDate dateWithTimeIntervalSinceNow:]; // 1.2.设置弹出的内容
localNote.alertBody = @"CN EZ"; // 1.3.设置锁屏状态下,显示的一个文字
localNote.alertAction = @"DOTA2"; // 1.4.显示启动图片
//localNote.alertLaunchImage = @""; // 1.5.是否显示alertAction的文字(默认是YES)
localNote.hasAction = YES; // 1.6.设置音效
localNote.soundName = UILocalNotificationDefaultSoundName; // 1.7.应用图标右上角的提醒数字
localNote.applicationIconBadgeNumber = ; // 1.8.设置UserInfo来传递信息
// localNote.userInfo = @{@"alertBody" : localNote.alertBody, @"applicationIconBadgeNumber" : @(localNote.applicationIconBadgeNumber)}; // 2.调度通知
[[UIApplication sharedApplication] scheduleLocalNotification:localNote];

3、其余属性的简单介绍:

@property(nonatomic,copy) NSDate *fireDate; // 设置本地推送的时间

@property(nonatomic,copy) NSTimeZone *timeZone; // 时区

@property(nonatomic) NSCalendarUnit repeatInterval;     // 重复多少个单元发出一次

@property(nonatomic,copy) NSCalendar *repeatCalendar;   // 设置日期

@property(nonatomic,copy) CLRegion *region NS_AVAILABLE_IOS(8_0);  // 比如某一个区域的时候发出通知

@property(nonatomic,assign) BOOL regionTriggersOnce NS_AVAILABLE_IOS(8_0); // 进入区域是否重复

// user info

@property(nonatomic,copy) NSDictionary *userInfo;

此次Demo的源码下载:https://github.com/fengzhihao123/LocalNotification

iOS 进阶---推送通知之本地通知的更多相关文章

  1. iOS 10推送通知开发

    原文地址:Developing Push Notifications for iOS 10,译者:李剑飞 虽然通知经常被过度使用,但是通知确实是一种获得用户关注和通知他们需要更新或行动的有效方式.iO ...

  2. 【FAQ】HMS Core推送服务与本地创建通知消息如何相互覆盖?

    我们知道,单独使用HMS Core推送服务或本地创建通知消息,都可以实现通知消息的覆盖,方式分别为: 1.本地创建通知消息(简称本地通知消息) 通过notificationManager.notify ...

  3. iOS的推送机制APNs:本地推送&远程推送

    本地推送: 本地推送主要应用在备忘录,闹钟等本地的,基于时间定时的消息提醒.本篇不做详细描述. 远程推送:APNS(苹果推送通知服务) iOS远程推送机制的原理及流程: 注册推送(橙色部分):若该Ap ...

  4. iOS监听模式系列之本地通知Notification

    本地通知 本地通知是由本地应用触发的,它是基于时间行为的一种通知形式,例如闹钟定时.待办事项提醒,又或者一个应用在一段时候后不使用通常会提示用户使用此应用等都是本地通知.创建一个本地通知通常分为以下几 ...

  5. iOS原生推送(APNS)进阶iOS10推送图片、视频、音乐

    代码地址如下:http://www.demodashi.com/demo/13208.html 前言 我们首先要在AppDelegate里面进行iOS的适配,可以参考这篇文章 iOS原生推送(APNS ...

  6. (转)iOS消息推送机制的实现

    原:http://www.cnblogs.com/qq78292959/archive/2012/07/16/2593651.html iOS消息推送机制的实现 iOS消息推送的工作机制可以简单的用下 ...

  7. 【iOS】iOS消息推送机制的实现

    iOS消息推送的工作机制可以简单的用下图来概括: Provider是指某个iPhone软件的Push服务器,APNS是Apple Push Notification Service的缩写,是苹果的服务 ...

  8. iOS消息推送机制

    iOS消息推送的工作机制可以简单的用下图来概括: Provider是指某个iPhone软件的Push服务器,APNS是Apple Push Notification Service的缩写,是苹果的服务 ...

  9. [置顶] 手把手教你iOS消息推送证书生成以及Push消息

    iOS推送消息是许多iOS应用都具备的功能,今天在给应用加推送功能,在生成证书的过程中,发生了各种令人蛋痛的事.下面就把步骤拿出来分享下: iOS消息推送的工作机制可以简单的用下图来概括: Provi ...

随机推荐

  1. sql设置字段默认值

    alter table 表名 modify 字段名 default 默认值;

  2. file_get_contents无法请求https连接的解决方法 php开启curl

    file_get_contents无法请求https连接的解决方法 方法1: PHP.ini默认配置下,用file_get_contents读取https的链接,就会如下错误: Warning: fo ...

  3. Python使用struct处理二进制(pack和unpack用法)

    转载自:http://www.cnblogs.com/gala/archive/2011/09/22/2184801.html 这篇文章写的很好,所以无耻的转了.. 有的时候需要用python处理二进 ...

  4. p4980 polya定理

    传送门 分析 orz ymh 代码 #include<iostream> #include<cstdio> #include<cstring> #include&l ...

  5. cJSON结构体构建

    cJSON结构体构建 一:cJSON的构建. int create_objects() { cJSON *root, *fmt, *img, *thm, *fld; char *out; int i; ...

  6. ajax中 XmlHttp的open( )方法

    博客分类:  Ajax XML  open 创建一个新的http请求,并指定此请求的方法.URL以及验证信息 语法 oXMLHttpRequest.open(bstrMethod, bstrUrl, ...

  7. 白盒测试实践-任务进度-Day03

    所使用静态代码检查工具 阿里巴巴Java开发代码检测IDE插件 小组成员 华同学.郭同学.覃同学.刘同学.穆同学.沈同学 任务进度 经过前期的学习和会议筹备,今天我们小组召开了代码评审会议.以下是今天 ...

  8. Python2.7.9 编码问题

    最近学一学网络爬虫,遇到第一件头疼的事情就是编码问题, 看了很多教程讲得不清楚, 现在整理一下,希望以后查看方便一些 使用   sys.getdefaultencoding()   查看Python的 ...

  9. Android测试入门篇

    Android本身是一套软件堆叠(Software Stack),或者成为软件叠层架构,叠层主要分成三层:操作系统.中间件和应用程序. Android构架 1. Application 应用程序层:用 ...

  10. 深入理解java虚拟机(四)垃圾收集算法及HotSpot实现

    垃圾收集算法 一般来说,垃圾收集算法分为四类: 标记-清除算法 最基础的算法便是标记-清除算法(Mark-Sweep).算法分为“标记”和“清除”两个阶段:首先标记处需要收集的对象,在标记完成之后,再 ...