美文网首页iOS技术交流
推送通知-后台通知/静默通知

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

作者: ShenYj | 来源:发表于2016-09-13 13:07 被阅读3161次
  • 后台远程推送
    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接收方法中的回调还是系统对后台通知任务的评估依据.

相关文章

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

    后台远程推送iOS7开始允许应用收到通知后直接在后台(background)状态下运行一段代码,而无需用户点击,可...

  • iOS推送Tips

    清除通知栏所有通知 推送通知进入后台处理通知消息 1.后台推送消息设置,要再推送消息中加入键值对"content-...

  • 三、<iOS 远程推送> 静默推送

    静默推送是干嘛的?有什么作用,苹果为何提供静默推送?如何去触发静默通知? 一、静默通知调用方法的研读 通过观看 W...

  • iOS个推的使用

    个推后台管理 推送通知 字段:通知标题: 弹窗标题通知内容: 都会显示在内容部分透传消息: ...

  • iOS学习笔记22-推送通知

    一、推送通知 推送通知就是向用户推送一条信息来通知用户某件事件,可以在应用退到后台后,或者关闭后,能够通过推送一条...

  • 本地推送通知、远程推送通知、激光推送

    title : 本地推送通知、远程推送通知、激光推送category : UI 本地推送通知、远程推送通知、激光...

  • 推送通知

    推送通知 1. 什么是推送通知? 2. 推送通知的应用场景? 3. 推送通知的展现样式? 4. 推送通知的分类 本...

  • APNS苹果远程推送

    什么是APNS? 苹果推送通知服务(APNs)是推送通知的网关,iPhone ipad 对于应用程序在后台运行有诸...

  • IOS推送

    推送: 用户被动的接收消息,是程序在后台的一种通知机制推送通知跟NSNotification不同1.NSNotif...

  • 推送通知

    一、推送通知 注意:这里说的推送通知跟NSNotification有所区别NSNotification是抽象的,不...

网友评论

  • 561c3c1fd0f9:可以用本地通知(进出指定位置),唤醒app台刷新一下数据么?主要想要实现考勤系统的自动签退
    561c3c1fd0f9:@ShenYj 非常感谢,我去尝试一下
    ShenYj:@Andrewshihs 理论上应该是可以的 我没在业务中使用过
  • 记忆淡忘中:大神 你好 请问静默推送是怎么做的啊?收到推送就回唤醒被挂起的app是吧
    ShenYj:@记忆淡忘中 极光推送,百度也有,推送的内容都是由服务端来推的,只是要先发到苹果服务器,苹果服务器再根据apk发给对应的设备,我也没吃透,你多找找这方面资料看看,仔细看会就懂了
    记忆淡忘中:@ShenYj 是服务端发送通知吧 有没有第三方推送有这种功能的么:sob:
    ShenYj:@记忆淡忘中 静默通知最重要的就是设置"content-available"字段,不要声音,不要角标
  • zero000:在程序退出状态下,收到远程通知,点击通知栏,会调用- application: didReceiveRemoteNotification: fetchCompletionHandler:这个方法吗?
    KODIE:退出之后点击横幅走的是didFinishLanuch,但是luanchOption里面有一个key是关于远程通知的key的,你可以根据这个key来判断是否是通过远程通知进入的
    ShenYj:@zero000 程序退出了收到通知,应该是走didFinishLanuch

本文标题:推送通知-后台通知/静默通知

本文链接:https://www.haomeiwen.com/subject/fvymettx.html