• State “DONE” from “TODO” <2021-06-20 周日 19:43>

场景描述

ios 通知提醒有三种展示样式:铃声、震动、弹出条。

  • 通知提醒有哪些开关,可以通过几种方式来控制? 开关可以分为两种,系统开关和 App 开关: 系统开关:由用户自由控制,即通过系统设置,来控制系统是否把消息(本地通知/apns 通知)通知到 app。 app 开关:由开发者控制,即开发者在开发对 app 定制支持消息展示样式。

app 开关实现

远程通知的展示时机分两种情况,第一种当 APP 未启动时,第二种 app 在前台时. 在前台时,需要在 Appdelegate.m 中实现代理方法:

  1. 设置消息通知弹出形式,支持在 APP 在前台时,弹出提示 userNotificationCenter:willPresentNotification:withCompletionHandler:

    1
    2
    3
    
             支持在前 台时,弹出提示
            // 在前台、后台都支持弹出 通知弹出,且带有 声音、内容和角标
              completionHandler(UNNotificationPresentationOptionSound | UNNotificationPresentationOptionAlert | UNNotificationPresentationOptionBadge);
    

联想其他场景

在本地通知的情况下,是否支持app在前台时,显示状态栏弹出的样式。这种情况需要定制本地通知的接收逻辑,在本地通知代理方法中重新配置消息通知的样式,具体可以参看表单本地通知的具体实现。