开发者社区> 问答> 正文

【移动推送】iOS 在前台可以弹出通知吗?

已解决

iOS 在前台可以弹出通知吗?

展开
收起
EMAS支持组 2022-09-16 14:01:28 443 0
1 条回答
写回答
取消 提交回答
  • 采纳回答

    iOS 10 +,前台通知触发回调处理完成后,调用 completionHandler 可实现前台通知弹出,具体参考:

    /**
     *  App 处于前台时收到通知 (iOS 10 + )
     *  只有当应用程序位于前台时,该方法才会在委托上调用。如果方法未被执行或处理程序没有及时调用,则通知将不会被提交。
     *  应用程序可以选择将通知呈现为 声音、徽章、警报、或通知列表中。此决定应基于通知中的信息是否对用户可见。
     */
    - (void)userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions))completionHandler {
        // 处理完成后调用 completionHandler ,用于指示在前台显示通知的形式
        // completionHandler() 功能:可设置是否在应用内弹出通知
        // 在 iOS 10 + 中 通知在前台的显示设置:
        // 1、通知在前台不显示
        // 如果调用下面代码: 通知不在前台弹出也不在通知栏显示
        // completionHandler(UNNotificationPresentationOptionNone);
        // 2、通知在前台显示
        // 如果调用下面代码: 通知在前台弹出也在通知栏显示
        // completionHandler(UNNotificationPresentationOptionAlert);
        // 3、通知在前台显示 并带有声音
        // 如果调用下面代码:通知弹出,且带有声音、内容和角标
         completionHandler(UNNotificationPresentationOptionSound | UNNotificationPresentationOptionAlert | UNNotificationPresentationOptionBadge);
    }
    

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

相关电子书

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