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. 详细探究Spark的shuffle实现

    Background 在MapReduce框架中,shuffle是连接Map和Reduce之间的桥梁,Map的输出要用到Reduce中必须经过shuffle这个环 节,shuffle的性能高低直接影响 ...

  2. Spark internal - 多样化的运行模式(上)

    Spark的运行模式多种多样,在单机上既可以以本地模式运行,也可以以伪分布式模式运行.而当以分布式的方式运行在Cluster集群中时,底层的资源调度可以使用Mesos 或者是Hadoop Yarn , ...

  3. HTML5框架、背景和实体

    -----------------siwuxie095                                 HTML5 框架         1.框架标签 <frame>   ...

  4. Java核心技术-Java的基本程序设计结构

    1.一个简单的Java应用程序 public class FirstSample { public static void main(String[] args) { System.out.pring ...

  5. 8-全排列next_permutation

    C++中全排列函数next_permutation 用法 转载 2017年03月29日 14:38:25 1560 全排列参考了两位的博客 感谢! http://blog.sina.com.cn/s/ ...

  6. LoadRunner11学习记录二 -- 进行cookie模拟

    1.LoadRunner录制打开一个网页的脚本,会生成脚本夹杂迅雷,迅雷看看,百度等链接地址,这是因为ie打开之后会加载未禁用的加载项.需要把相关的加载项禁用掉. 禁用ie加载项步骤,工具--管理加载 ...

  7. Cocos2dx之touch事件

    今天看了下ccocos2dx touch事件部分的源码,从CCTouch.CCTouchHandler和CCTouchDispatcher简单的做了分析和总结,先直接看源码吧! 1.CCTouch c ...

  8. python处理Excel 之 xlrd-乾颐堂

    python处理Excel常用到的模块是xlrd.使用xlrd可以非常方便的处理Excel文档,下面介绍一下基本用法 1.打开文件 import xlrd data= xlrd.open_workbo ...

  9. Logback configuration

    官方指导 http://logback.qos.ch/manual/configuration.html 规则 ch.qos.logback.core.joran.JoranConfiguratorB ...

  10. zrender源码分析3--初始化Painter绘图模块

    接上次分析到初始化ZRender的源码,这次关注绘图模块Painter的初始化 入口1:new Painter(dom, this.storage); // zrender.js /** * ZRen ...