iOS本地仅发声无角标的通知实现方案咨询
iOS本地通知:仅提示音无角标实现及角标控制问题
一、仅带提示音、无角标的本地通知实现
- iOS系统要求本地通知必须包含title或body字段,否则不会触发任何通知行为(包括提示音),所以只设置
sound属性无效。 - 要实现仅提示音、无角标的效果,可按以下方式处理:
- 创建
UNMutableNotificationContent时,设置空的title或body(满足系统必填要求),同时指定提示音并强制设置角标为0:let content = UNMutableNotificationContent() content.title = "" // 必须设置title或body,空字符串即可 content.sound = UNNotificationSound.default // 也可替换为自定义音效文件 content.badge = 0 // 强制清除角标 - 配置并添加通知请求:
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 5, repeats: false) let request = UNNotificationRequest(identifier: "SoundOnlyNotification", content: content, trigger: trigger) UNUserNotificationCenter.current().add(request) - 确保已获取用户的通知授权,且声音权限处于开启状态。
- 创建
二、代码控制角标相关设置
- 代码可直接清除应用图标角标:
UIApplication.shared.applicationIconBadgeNumber = 0 - 但无法通过代码修改系统设置中“锁屏/通知中心显示角标”的开关,这属于用户的系统级偏好,苹果禁止APP直接修改该设置,只能引导用户手动进入「设置-通知-你的应用」中关闭“标记”选项。
内容的提问来源于stack exchange,提问作者irrbloss
相关产品推荐
相关产品推荐

