杨小麦iOS学习笔记--远程推送

关于远程推送也是一直在不断演变当中,从iOS3引入远程推送开始,直至iOS10做了一次重大的重构。而远程推送也是iOS应用非常常见且重要的一大功能。还是重新再整理一篇吧关于远程推送的笔记。感觉这一篇笔记都要被玩坏的感觉。而且用了MarkDown之后,真的不是很想在非MarkDown下编辑。为什么CSDN不提供将老式编辑器写出的文章迁移到Markdown编辑器下面的功能啊。
13th,July,2016
问题写在前面:[ 已解决 ]
Question: 开启静默通知,didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void(^)(UIBackgroundFetchResult))completionHandler会覆盖didReceiveRemoteNotification:(NSDictionary *)userInfo方法。
原本我以为是content-available为1时当前通知就是静默通知,为0则是正常的推送通知。但刚刚试验了下,即使设为0也是没有在系统中收到推送通知。
问题来了,可以实现有的通知是需要后台执行的,有的则是推送提醒的吗?  (目前还不知道,如知望交流)[已解决]
还有一个问题,在推送消息中,设置了badge为2,但应用中也没有显示!
18th,August,2016
因为看了咪神关于iOS10的UserNotification的文章。重新回顾了下通知iOS10之前这一块的知识(iOS10这一块的知识可能得等到我下了Xcode8之后,才可以试试)。之前的问题现在有了进一步的认识。
静默通知的处理方式应该是通过content-available判断是否为静默通知,静默通知则做一定的后台处理。不是静默通知则

completionHandler(UIBackgroundFetchResultNoData);当时也没看这一回调的文档,文档中也提到实现了这一回调,

application:didReceiveRemoteNotification:回调就不会再实现。且这一方法跟application:didReceiveRemoteNotification:的区别出了可以后台执行一会程序。且程序退出后再进入的信息也可以在该回调中获取,而不像之前的版本,除了在application:didReceiveRemoteNotification:接收通知信息,还要在didFinishLaunchingWithOptions中接收通知信息。


反思: 不看文档,绕了这么一大个弯,真是会折腾啊我。

你可能感兴趣的:(iOS录)