开发者社区> 问答> 正文

移动推送 iOS : 推送通知调用哪些方法?

移动推送 iOS : 推送通知调用哪些方法?

展开
收起
保持可爱mmm 2020-03-27 23:21:51 878 0
1 条回答
写回答
取消 提交回答
  • iOS 通知一般场景,只有 点击/删除 通知,才能触发对应的回调,具体参考如下: iOS 10 + App 处于前台收到通知,触发回调,可在此方法中设置 前台弹窗设置 ;

    • (void)userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions))completionHandler; 当 App 处于后台 点击通知栏通知触发通知动作时回调,比如 点击/删除 通知 和 点击自定义 action

    • (void)userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)())completionHandler; iOS 10 - 当 App 处于未运行状态时,点击通知触发的回调 : 在该方法中 didFinishLaunchingWithOptions: 这个函数 在正常启动下 launchOptions 是空,如果你是从点击推送通知过来的,那么 laungchOptions 里面会包含你的推送的内容。在这里就可以进行相应的处理,你就可以发一个通知,可以在 rootViewController 中接收执行相应的操作

    • (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions; 当 App 处于 前台 或 后台 挂起状态时,点击通知触发的回调: iOS 7.0 以下版本:

    • (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo; iOS 7.0 及以上版本:

    • (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler;

    不点击通知,如何获取通知相关的数据 ? 几种场景参考如下: 前台回调 当 iOS 设备位于前台时,通知一般不弹出,直接触发对应回调,回调中可获取通知信息,回调函数参考上面描述 。 静默通知 参考 iOS 静默通知 ; 当 App 处于后台(不包括关闭状态)时 ,发送静默通知,可直接触发对应回调,可对通知相关信息进行处理,且通知不会弹出。

    • (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler ; iOS 10 Notification Service Extension 参考 iOS 10通知适配 ; iOS 10 通知新添加的特性 Notification Service Extension,使得设备收到通知弹出前,可对通知进行处理,仅支持 iOS 10 + 设备 。
    2020-03-27 23:24:46
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

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