推送通知-后台通知/静默通知

  • 后台远程推送
    iOS7开始允许应用收到通知后直接在后台(background)状态下运行一段代码,而无需用户点击,可用于从服务器获取内容更新。

使用场景:Email更新,基于通知的订阅内容提前同步等功能,提升了终端用户的体验。

设置:
1.发送时:推送内容中设置”content-available”:1
2.接收时:使用iOS7新API接收通知
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler

注意: 使用后台推送通知,需要设置后台模式(Target -->Capabilities -->Background Modes下勾选Remote notifications)

代理方法:

#pragma mark - 推送通知(远程推送通知)

/**
 *  已经接收到远程通知后调用
 *
 *  @param application 应用对象
 *  @param userInfo    json字符串转成的字典
 */
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo{
    
}
/**
 *  已经接收到后台远程通知后调用 (如果实现了该方法,默认的接收通知的方法就不会再被调用didReceiveRemoteNotification↑)
 *
 *  @param application       应用对象
 *  @param userInfo          <#userInfo description#>
 *  @param completionHandler <#completionHandler description#>
 */
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler{
    
    NSLog(@"%@",userInfo);
    
    // 系统会根据UIBackgroundFetchResult来判断后台处理的有效性,如果后台处理效率较低,会延迟发送后台推送通知
    completionHandler(UIBackgroundFetchResultNewData);
    
}
  • 静默通知
    在后台执行远程通知的条件前提下,如果通知内容不包括任何声音&提醒&角标设置,则可以在完全不打扰用户的情况下进行后台内容更新.

  • 后台推送的特点
    1.自动执行必须是应用已经开启的前提下(无论前后台)
    2.在应用程序挂起之前有30秒左右可以执行工作。
    后台推送不是用于CPU频繁工作或者长时间运行任务,而是用来处理长时间运行的网络请求队列(NSURLSession,系统的全局任务),例如下载一部很大的电影,或者执行快速的内容更新(网络拉取数据并更新后,使用presentLocalNote发送本地通知,进入App时已经更新完数据)。
    3.静默的推送通知有速度限制
    苹果推送服务根据后台推送任务的能耗(用电量,接收情况)来控制后台推送的推送频率和延迟时间。
    不同于iOS8本地通知的回调仅用于更新快照,iOS7接收方法中的回调还是系统对后台通知任务的评估依据.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 推送通知注意:这里说的推送通知跟NSNotification有所区别NSNotification是抽象的,不可见的...
    醉叶惜秋阅读 5,431评论 0 3
  • 推送通知 注意:这里说的推送通知跟NSNotification有所区别 NSNotification是抽象的,不可...
    iOS开发攻城狮阅读 9,770评论 1 13
  • 极光推送: 1.JPush当前版本是1.8.2,其SDK的开发除了正常的功能完善和扩展外也紧随苹果官方的步伐,SD...
    Isspace阅读 11,720评论 10 16
  • 超级喜欢这个小萝莉,总是画小萝莉,请大家不要以为我是个怪蜀黍Q_Q 这次我有记得照过程图哦^ω^
    墨色晕染阅读 2,990评论 13 12
  • 1.笑来老师4.18号晚上的直播中,他对价值观的理解让我又一次刷新了对价值观的理解。价值观就是:做更重要的事。 价...
    任雨点阅读 5,000评论 0 0

友情链接更多精彩内容