APNs消息推送完整讲解 (1)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

通过registerForRemoteNotificationTypes方法,告诉应用程序,能接受push来的通知。 在项目的AppDelegate中添加下面的方法来获取deviceToken:
Ios代码
1. - (void)application:
(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:
最新评论
【转】 随笔AP- N11s7消文息章推- 送1 完评论整-讲11解
https://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/IPhoneOSCl CH103-SW1
20 21 22 23 24 25 26
27 28 29 30 31 1 2
34567 8 9
搜索
找找看 谷歌搜索
常用链接
我的随笔 我的评论 我的参与 最新评论 我的标签 更多链接
我的标签
ios(6) MFC(4) OpenCV(4) SQLite3(4) UIWebView(3) NSDate(3) plist(3) NSDictionary(3) 内存管理(3) UITableView(3) 更多
当iOS收到远程消息时,
如果应用程序isn't running in the foreground,iOS会处理这个消息,比如弹出一个框、在应用程序的icon上显 示红色数字。 然后如果用户通过点击弹框进入程序,iOS会启动程序并调用application:didFinishLaunchingWithOptions并 且拿远程消息的payload进行传参. 如果用户直接点击app icon进入程序,iOS会启动程序并同样调用 application:didFinishLaunchingWithOptions,但是传参将不会有远程消息的任何信息。
provider发送消息到APNs,然后APNs再发送到目标IOS设备。(这个传输是单向的。) 这个消息的内容含两部分:设备token和payload.
反馈服务-有时候APNs发送消息到某设备(token)某程序(bundle identifier)但是该设备并没有这个程序,多次这种情况
之后,APNs会通知provider,通过其连接的一个反馈服务(a feedback service)。 反馈服务为每一个程序维护了一个失效设备列表,provider应该获取这个列表从而停止向APNs发送以这些
可以在xcode里看iOS application所处何环境:看编译选项里的code-signing identity,如果是"iPhone Developer:Firstname Lastname"证书与provisioning profile匹配成对,说明是sandbox环境。如果是"iPhone Distribution:Companyname"证书与provision profile匹配成对,说明是production环境。根据release和debug 分别配置code-signing identity选项的证书将会是一个好主意。
随笔档案
2013年6月 (1) 2013年5月 (4) 2013年4月 (10) 2013年3月 (7) 2012年11月 (1) 2012年10月 (8) 2012年8月 (2) 2012年7月 (6) 2012年6月 (5) 2012年5月 (7) 2012年4月 (7) 2012年3月 (59)
13-7-1
【转】APNs消息推送完整讲解 - 编程小翁 - 博客园
编程小翁
博客园 首页 博问 闪存 新随笔 联系 订阅 管理
昵称:编程小翁 园龄:1年4个月 粉丝:28 关注:7 +加关注
<
2012年5月
>
日一二三 四 五 六
29 30 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
8.
NSLog(@"Failed to get token, error:%@", error_str);
9. }
获取到的deviceToken,我们可以提交给后台应用程序,发送通知的后台应用程序除了需要知道deviceToken 之外,还需要一个与APNS连接的证书。
(自iOS开发文档"Local and Push Notification Programming Guide"里与iOS相关的部分翻译)
在项目的AppDelegate中的didFinishLaunchingWithOptions方法中加入下面的代码:
Ios代码 1. [[UIApplication sharedApplication] registerForRemoteNotificationTypes: (UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound | UIRemoteNotificationTy
如果应用程序is running in the foreground,就会调用application:didReceiveRemoteNotification.
----------------------------------------------▲APNs---------------------------------------------IOS设备会持久连接APNs以接受远程消息。
--东方皓 5. Re:【原】three20官方demo使用 备注 看不到图片哦。
--剪刀
阅读排行榜
1. UITextField的总结(11908) 2. UIPopoverController的使用(6110) 3. 目前最细致清晰的NSDictionary 以及NSMutableDictionary用法总结( 5897) 4. UIToolBar使用示例(5617) 5. 【转】好东西!sqlite3中BLOB数 据类型存储大对象运用示例(4925)
--wwwang89 2. Re:【原】浅思OC的语言特性 文字很多,没有耐心读。。要是加 一些截图就更好了
--唐丽梅 3. Re:UITextField的总结 博主很细心啊,重要的地方都做了 中文备注! 博主你可以来IOS中高级开发群:11 8623167 和大家交流下,一定能收 获很多!
--super_chen 4. Re:初学者关于内存的思考(不断 加深不断更新中) 感谢楼主的分享,我想问一下楼主 有没有关于内存管理,按照你这上 面说的实施下来的完整例子?是否 可以分享一下。
随笔分类
C/C++(15) iosUI(22) ios基本语法(14) IOS开发(35) ios内存管理(2) IOS数据库(9) IOS网络编程(1) IOS文件操作(3) MFC(5) OpenCV(4) 机器学习(4) 计算机视觉(2) 经典资源收藏(1) 视频分析(1) 数据库(1) 算法(2)
推荐排行榜
1. IOS的消息传递机制,使用NSNot ificationCenter进行通信,很实用(2) 2. UISegmentedControl的所有操作 总结(2) 3. UITextField的总结(1) 4. UIPopoverController的使用(1) 5. 初学者关于内存的思考(不断加深 不断更新中)(1)
----------------------------------------▲部署------------------------------------------要部署provider端client/server程序,需要来自苹果的SSL证书。下称provider证书。 provider证书对应于特定的iOS Application(Bundle identifier)。 同时,provider证书分为开发测试和产品两种版本,对应于两种APNs环境: Sandbox(Development) :可用模拟器测试。地址是gateway.sandbox.push.apple.com: TCP 2195 Production(Distribution):gateway.push.apple.com: TCP 2195 同 时,provision profile也对应了两个版本:Development和Distribution.(The Distribution provision profile is a requirement for submitting your application to the App Store.)
设备为目的地的某程序的远程消息。
www.cnblogs.com/wengzilin/archive/2012/05/02/2479241.html
1/4
13-7-1
1. Re:UIPopoverController的使用 楼主,有demo没?求一份:wwwan g89@163.com。万分感谢~~~
(UIApplication *)app didFailToRegisterForRemoteNotificationsWithError:
(NSError *)error {
7.
NSString *error_str = [NSString stringWithFormat: @"%@", error];
评论排行榜
1. (转)UIWebView的基本用法, 适合新手(2) 2. 目前最细致清晰的NSDictionary 以及NSMutableDictionary用法总结( 2) 3. UITextField的总结(1) 4. 【原】浅思OC的语言特性(1) 5. UIPopoverController的使用(1)
【转】APNs消息推送完整讲解 - 编程小翁 - 博客园 APNs的安全架构-provider需要一个有效证书才能和APNs连接(这个证书有目标程序的Bundle identifier信息)。 与APNs连接后,provider向APNs发送的消息带有设备token(由目标程序连接provider然后发来token), APNs以此找到目标设备,然后看目标设备里的目标程序有接受推送的证书,APNs以此验证给目标设备的目 标程序发送的消息是合法的。
-----------------------------------------▲客户端处理-----------------------------------------建议每次程序启动的时候都调用registerForRemoteNotificationTypes来重新获取设备相关的token,而不要缓 存token. 这是因为,如果用户重装了iOS或者用户换了设备并且恢复程序备份到一个新的设备,都将导致这个token值 不一样。
(NSData *)deviceToken {
2.
NSString *token = [NSString stringWithFormat:@"%@", deviceToken];
3.
NSLog(@"My token is:%@", token);
4. }
5.
6. - (void)application:
一个JSON Payload的完整例子(为了性能,建议去掉空白字符) { "aps" : { "alert" : "Message received from Bob", "badge" : 5, "sound" : "bingbong.aiff" }, "myCustomData" : ["bang", "bang、bang、bang"], "myCustomData2": 42 }
注意:远程消息是不可靠的。
------------------------------ቤተ መጻሕፍቲ ባይዱ---------▲Provider------------------------------------------Payload-最多256bytes。
本地化alert: eg:"alert" : {"loc-key":"GAME_PLAY_REQUEST_FORMAT","loc-args":["Jenna","Frank"]}, 程序包里面的本地化字符串如下: "GAME_PLAY_REQUEST_FORMAT" = "%@ and %@ have invited you to play Monopoly"; 这样,最后显示alert的字符串就是: "Jenna and Frank have invited you to play Monopoly"
相关文档
最新文档