iOS开发消息推送机制——远程推送。
来源:互联网 发布:乐知英语怎么样 编辑:程序博客网 时间:2024/06/06 01:31
远程推送:APNs(Apple Push Notification Server)
只要用户关闭了app,就无法跟app的服务器沟通,无法从服务器上获得最新的数据内容,而苹果的每台手机只要在联网时都能够与苹果的服务器长连接,所以我们的app只能通过苹果的服务器来向用户推送我们自己app的消息:
图1:向app推送消息
想要进行远程推送必须具备的条件:DeviceToken(每台设备的标识包含UDID和app的 appID)。只要app告诉苹果服务器需DevicToken,苹果就会自动生成并返回。客户端要做的就是将设备返回的deviceToken保存到数据库中,留待以后发送消息时使用。
图2: 获得设备的DeviceToken
到现在为止总结起来的流程就是
- 首先是应用程序注册消息推送。
- IOS跟APNS Server要deviceToken。应用程序接受deviceToken。
- 应用程序将deviceToken发送给PUSH服务端程序(Provider)。
- 服务端程序向APNS服务发送消息。
- APNS服务将消息发送给iPhone应用程序。
推送前的配置:
1.准备一堆证书(在哪台电脑上用哪台设备调试哪个应用)
2.利用设备UDID标识在Devices一栏中注册设备
3.创建App ID(应用的唯一标识,BundleIdentifier tips:通配符 ID 不能用于推送通知服务)
4.电脑调试证书 + 设备的UDID+AppID ==描述文件(mobileprovision)
安装证书:
5、让某个应用增加推送功能(用到AppID+certSigningRequest):
AppID+certSigningRequest==aps_development.cer(真机调试时使用这个cer。)
AppID+certSigningRequest==aps_production.cer (应用发布时使用此cer)
6、配置应用的Bundle Identifier与填写的一致
最终会产生5个文件:
确保安装了:•ios_development.cer:电脑调试证书、aps_development.cer:推送调试证书、•apple_mj_iphone5_heima_qq.mobileprovision:描述文件配置证书。
注册远程推送通知:
客户端如果想接收APNs的远程推送通知,必须先注册(得到用户的授权)
- (BOOL)application:(UIApplication*)applicationdidFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//注册远程通知
UIRemoteNotificationType type=UIRemoteNotificationTypeAlert |UIRemoteNotificationTypeBadge |UIRemoteNotificationTypeSound;//通知类型
[application registerForRemoteNotificationTypes:type];
returnYES;
}
- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
NSLog(@"%@", deviceToken);//获得devicetoken发送给公司的服务器
}
-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler{
}
- iOS开发消息推送机制——远程推送。
- iOS开发消息推送机制——本地推送。
- iOS开发之消息推送 —— 远程消息推送入门
- iOS开发——远程消息推送的实现
- iOS远程消息推送
- 【iOS】远程消息推送
- ios远程消息推送。
- iOS远程消息推送
- iOS远程消息推送
- iOS 远程消息推送
- IOS远程消息推送
- IOS远程消息推送
- iOS消息推送机制
- ios消息推送机制
- iOS开发如何实现消息推送机制
- iOS开发如何实现消息推送机制
- iOS开发如何实现消息推送机制
- iOS开发如何实现消息推送机制
- WebView与Javascript无法交互问题
- java基础学习-抽象类、接口
- 浮躁的程序员
- C 测试题
- Android滑动菜单特效实现,仿人人客户端侧滑效果
- iOS开发消息推送机制——远程推送。
- Mac OS X 桌面图标隐藏和显示
- 第10周项目4-大奖赛计分(扩展)
- 第十周项目四——大奖赛计分
- HEVC中的图像的分块分割方法
- boost::noncopyable
- 友链的几点注意事项
- Markov Model and Hidden Markov Model 简介和学习线路
- HEVC中的PPS解析