记录iOS的消息推送
来源:互联网 发布:当代古琴大师知乎 编辑:程序博客网 时间:2024/05/02 11:55
最近在做iOS的推送,顺便整理记录一下,首先看下消息的流程,一图胜千言:
Provider将目的设备的唯一标识及消息体通过APNS传递到用户的手中。
那么,Provider如何获取到用户的设备唯一标识(DeviceToken)呢,看下图:
注,app首先要活的接受通知的权限。图中红色框区域是服务端开发需要处理的,可以通过第三方服务完成,如极光推送,百度推送等。
接下来,落实到代码上:
1、获取DeviceToken,注册远程通知,并指定类型,首次注册会提示申请权限。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { ... [application registerForRemoteNotificationTypes:UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound]; return YES; }
2、如果获取成功后,会回调这个方法完成与Provider的通信
- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { NSLog(@"Receive DeviceToken: %@", deviceToken); [APService registerDeviceToken:deviceToken]; //极光}如果失败则回调下面方法
- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *) error { NSLog(@"did Fail To Register For Remote Notifications With Error: %@", error);}
对于远程通知 ,分两种情况讨论:
1、应用处于UIApplicationStateActive时,即应用处于开启状态时,接收到远程通知 下面这个方法会被响应
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {处理userInfo}
2、应用处于关闭时,
①如果收到通知后点击icon进入,则无任何函数被触发
②如果是点击远程通知那一条目进入,则,有两个地方会或得到推送的内容
首先,
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{......NSDictionary* userInfo = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];}
其次,下面函数也会被调用(NS_AVAILABLE_IOS(7_0) __TVOS_PROHIBITED;)
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {处理userInfo}
对于本地通知:
1、应用处于UIApplicationStateActive时,即应用处于开启状态时,接收到本地通知 下面这个方法会被响应
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification{ NSDictionary *NotDict = notification.userInfo;}
2、应用处于关闭时,
①如果收到通知后点击icon进入,则无任何函数被触发
②如果是点击本地通知那一条目进入,则,仅有一个地方会或得到推送的内容
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ ...... UILocalNotification *theNotification = [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];}
0 0
- 记录iOS的消息推送
- iOS消息推送实现过程记录
- iOS消息推送实现过程记录
- 转:iOS消息推送实现过程记录
- iOS消息推送实现过程记录
- IOS的消息推送机制
- ios推送消息的基本原理
- iOS清除推送的消息
- ios推送消息的基本原理
- iOS 推送消息的原理
- ios推送消息的基本原理
- IOS的消息推送机制
- Android平台消息推送功能的记录~
- java pns 向 IOS 推送消息错误记录
- ios的消息推送,Java实现的
- IOS推送消息 php推送
- ios 推送消息 php推送
- iOS消息推送机制的实现
- 多线程实现UDP协议发送和接收
- 使用golang的标准库搭建网站--2.模板解析
- linux下spf13-vim安装
- centos7安装mysql及远程访问设置(yum)
- 【LWJGL官方教程】游戏逻辑
- 记录iOS的消息推送
- 2015-12-13复习之CSS3选择器
- 补码
- C语言总结
- HDU 1342 Lotto
- btrfs 使用指南 - 1 概念,创建,块设备管理,性能优化
- bzoj1854[Scoi2010]游戏
- Company A面试 笔试 : 爬山 算步骤 问题
- servlet复习(二)HTTP Servlet API