iOS技术交流

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

2016-09-13  本文已影响3161人  ShenYj

使用场景: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);
    
}
上一篇 下一篇

猜你喜欢

热点阅读