开发者社区> 问答> 正文

iOS后台获取通知信息

已解决

展开
收起
2018-03-29 00:29:32 729 0
1 条回答
写回答
取消 提交回答
  • 采纳回答

    详细解答可以参考官方帮助文档

    iOS通知一般场景,只有点击/删除通知,才能触发对应的回调,具体参考如下:

    iOS 10+

    • App处于前台收到通知,触发回调:
    1. - (void)userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions))completionHandler;
    • 点击/删除通知触发回调:
    1. - (void)userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)())completionHandler;

    < iOS 10

    • 当App处于未运行状态时,点击通知触发的回调:
    1. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;
    • 当APP处于前台或后台挂起状态时,点击通知触发的回调:

    • iOS 7.0以下版本:

    1. - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo;
    • iOS 7.0及以上版本:
    1. - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler;

    不点击通知,如何获取通知相关的数据?几种场景参考如下:

    前台回调

    • 当iOS设备位于前台时,通知一般不弹出,直接触发对应回调,回调中可获取通知信息,回调函数参考上面描述。

    静默通知

    • 参考iOS静默通知
    • 当App处于后台(不包括关闭状态)时,发送静默通知,可直接触发对应回调,可对通知相关信息进行处理,且通知不会弹出。

    iOS 10 Notification Service Extension

    • 参考iOS 10通知适配
    • iOS 10通知新添加的特性Notification Service Extension,使得设备收到通知弹出前,可对通知进行处理,仅支持iOS 10+设备。
    2018-04-03 21:45:39
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
手淘iOS性能优化探索 立即下载
From Java/Android to Swift iOS 立即下载
深入剖析iOS性能优化 立即下载