开发者社区> 问答> 正文

【移动推送】iOS端推送通知调用哪些方法?

已解决

iOS端推送通知调用哪些方法?

展开
收起
EMAS支持组 2022-09-15 17:26:28 367 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设备位于前台时,通知一般不弹出,直接触发对应回调,回调中可获取通知信息,回调函数参考上面描述 。

    静默通知

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

    参考iOS 静默通知

    - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler ;
    iOS 10 Notification Service Extension
    

    iOS 10通知新添加的特性Notification Service Extension,使得设备收到通知弹出前,可对通知进行处理,仅支持iOS 10+设备 。

    参考 iOS 10通知适配


    更多官方信息

    EMAS官网介绍:https://www.aliyun.com/product/emas

    Devops:https://www.aliyun.com/product/emascrash/mobile_devops

    移动热修复:https://www.aliyun.com/product/hotfix

    移动测试:https://www.aliyun.com/activity/emas/mqcexpert

    移动推送:https://www.aliyun.com/product/cps

    HTTPDNS:https://www.aliyun.com/product/httpdns

    EMAS 控制台: https://emas.console.aliyun.com/products

    2022-09-16 13:08:28
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
基于阿里巴巴以及合作伙伴的最佳实践,围绕大前端、云原生领域的相关技术热点(小程序、Serverless、应用中间件、低代码、DevOps)展开行业探讨,与开发者一起探寻云原生时代应用研发的新范式。
问答排行榜
最热
最新

相关电子书

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