iOS--本地通知与远程推送

一、苹果中的几种通知

1、广播通知(NSNotificationCenter)

1)实现一个对象对多个对象的通信

2)是抽象的,肉眼看不到的

2、推送通知

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

2)肉眼看看到的

3)设置提示样式

设置 ---- 通知中心  点击任意应用通知  提示样式

4)推送通知有两种

本地通知(Local Notification)

远程通知(Remote Notification)

二、本地推送通知

1、概念

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

2、使用场景

常用来定时提醒用户完成一些任务,即使程序被杀死提示照样有,例如:记事本、备忘录等

3、如何发送出本地通知

1)创建本地通知对象

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

2) 设置本地推送通知属性

触发时间

fireDate

通知的具体内容

alertBody

锁屏时的动作标题

alertAction

音效文件名

soundName

app图标数字

applicationIconBadgeNumber

点击通知, 打开程序时候显示的启动图片

localNote.alertLaunchImage

3) 调度本地推送通知

[[UIApplication sharedApplication] scheduleLocalNotification:localN];

4) 取消所有通知

UIApplication *app = [UIApplication sharedApplication];

[app cancelAllLocalNotifications];

5)获取授权

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

[application registerUserNotificationSettings:seeting];

三、监听本地通知点击

1、点击通知,应用程序进入前台或者在前台时调用,如果程序杀死,点击通知信息不执行

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

}

2、如果程序被杀死后还想点击通知信息进入相应界面,需要在下面方法里做相应判断

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

if(launchOptions){

UILocalNotification *localNote = launchOptions[UIApplicationLaunchOptionsLocalNotificationKey];

}

}

3、在Appdelegate向window添加试图时,要重写window


/////远程推送////

一、远程通知基本概念

1、从远程服务器推送给客户端的通知(需要联网)

2、又称APNS(Apple Push Notification Services)

3、为什么需要远程推送通知

1)传统获取数据的局限性

只要用户关闭了app,就无法跟服务器沟通,无法从服务器上获取最新的数据内容

2)远程推送通知可以解决以上问题

不管用户打开还是关闭app,只要联网了,都能接到服务器推送的远程通知

二、远程通知使用须知

所有苹果设备,在联网状态下,都会与苹果的服务器建立长链接

1)长链接

只要联网了,就一直建立链接

2)长连接作用

时间校准

系统升级

查找iPhone

3)长链接的好处

数据传输速度快

数据保持最新状态

三、推送通知原理

查看课件里面远程推送原理

1、发送设备的UDID和应用的Bundle Identifer给APNS服务器

2、经苹果加密生成一个deviceToken,通过devieceToken能找到某个设备上的某个应用程序

3、发送当前用户张三的deviceToken和用户的标志(比如id或qq)给QQ服务器

4、QQ服务器将发送过来的内容存到数据库

5、李四的手机给张三发信息--吃了么,实际是先发送到服务器

6、去数据库查询张三的deviceToken

7、将内容发送给苹果的APNS

8、APNS通过deviceToken找到张三现在的设备,并发送相应信息

四、开发iOS程序的推送功能,iOS端需要做的事情

1、向苹果请求获得deviceToken

2、得到苹果返回的deviceToken

3、发送deviceToken给公司的服务器

4、监听用户对通知的点击

五、调试iOS远程推送功能,必备条件

1、真机

2、调试推送需要的证书文件,

1)aps_development.cer

某台电脑就能调试app的推送服务

2)iPhone5_qq.mobileprovision

某台电脑就能利用某台设备调试某个程序

3、发布具有推送服务的app

1)aps_production.cer

如果发布的程序中包含了推送服务,就必须安装这个证书

2)qq.mobileprovison

某台电脑就能发布某个程序

你可能感兴趣的:(iOS--本地通知与远程推送)