iOS 15 - 前台通知不会播放通知声音

2023-12-02

在 iOS 15 中播放与通知相关的提示音而不显示横幅或列表的正确方法是什么?

在前台处理通知时,无论是本地通知还是推送通知,如果出现以下情况,则不会播放通知声音:UNNotificationPresentationOptions只是sound。如果有其他选项,例如banner or list与一起添加sound然后会响起通知音。

当应用程序在后台时,通知呈现的所有选项都可以正常工作。

I know alert该选项从 iOS 15 开始已弃用。正在使用sound作为唯一的演示选项,不再有效?

下面是片段

func userNotificationCenter(_ center: UNUserNotificationCenter, 
willPresent notification: UNNotification, withCompletionHandler 
completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
     
     completionHandler(.sound) //not working
     //completionHandler([.banner, .sound]) //works
     //completionHandler([.list, .sound]) //works
     
 }

Update:苹果确认这是一个错误,现已在 iOS 16 beta 2 中修复。但 iOS 15 没有解决方案。


我找到了解决方案。 您需要像这样设置完成处理程序:

func userNotificationCenter(_ center: UNUserNotificationCenter,
                                willPresent notification: UNNotification,
                                withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {

    switch UIApplication.shared.applicationState {

    case .active:
        if #available(iOS 14.0, *) {
            completionHandler([.sound, .list])
        } else {
            // Fallback on earlier versions
            completionHandler([.sound])
        }
    default:
        if #available(iOS 14.0, *) {
            completionHandler([.banner, .sound])
        } else {
            // Fallback on earlier versions
            completionHandler([.alert, .sound])
        }
    }
}

现在,应用内通知带有声音和我的自定义横幅。

.list也会在通知中心添加通知,我发现这非常有用,以防用户在使用该应用程序时错过了一些通知。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS 15 - 前台通知不会播放通知声音 的相关文章

  • iOS 使用 NSColor 与 UIColor?

    有什么区别UIColor and NSColor 什么时候会使用每一种 我碰到NSColor在试图弄清楚的同时UIColor用于 iOS 中的属性字符串 我理解使用UIColor对于 UIKit 等 但我不认为NSColor对于这种事情确实
  • 快速钥匙串更新只有在第二次尝试时才起作用

    您好 我在更新存储在钥匙串中的登录信息方面遇到了 iOS 钥匙串的一个非常奇怪的问题 因此 如果没有保存的凭据 则正确运行保存函数会保存登录信息 如果登录信息已存在并且用户更新了密码 则更新功能仅正确更新密码 但是 如果登录信息存在并且我尝
  • 使用 nib 作为带有 nib 类的表节标题

    我想创建一个加载 nib 文件并将其设置为标题 UIView 的节标题 这个 nib 文件还将有一个关联的类 其中插座和操作连接到 因此我想像平常一样使用 nib 加载该类 我在网上搜索并找到了几个类似的答案 但我找不到任何适合我的答案 经
  • 使用 UItableViewCell 类型的表达式初始化“CustomCellView *”的指针类型不兼容

    你能帮我理解和 修复下面的错误吗 我不明白CustomCellView是一个子类UItableViewCell 代码已编译 但警告仍然存在 Incompatible pointer type initializing CustomCellV
  • UITesting、XCTest 当前 ViewController 类

    简单的问题 我有一个按钮可以执行到下一个视图控制器的操作 我想写 UI XCTest 来告诉我它是否打开了我想要的视图控制器 UI 测试框架无法访问您的应用程序代码 这使得无法对实例进行类断言 你不能够directly告诉屏幕上的控制器的类
  • 在 UITextView 中获取 HTML

    我在中显示htmlUITextView by self textView setValue b Content b forKey contentToHTMLString 编辑内容后UITextView 我想获取包含 html 的内容 所以我
  • 使用自动布局、IB 和字体大小时表头视图高度错误

    我正在尝试为我的 uiTableView 创建一个标题视图 不是节标题 我已经有了 我已经在界面生成器中设置了一个 XIB 所有的连接都已连接好并且运行良好 除了桌子没有给它足够的空间 我的问题是表格顶部与表格标题有一点重叠 我的 XIB
  • 为具有多个目标和不同平台的项目编写 Podfile

    我正在准备一个支持 OS X 和 iOS 的 Pod 我的 pod 有一些自己的依赖项 这些依赖项在 podspec 文件中定义 因此我使用 Podfile 来管理我用来开发 pod 和运行测试的项目的依赖项 我正在使用 CocoaPods
  • 使用 Quartz 创建 PDF 注释 (iOS)

    有人设法使用 Quartz 在现有 PDF 中编写自定义注释吗 我已经使用 CGPDFDocumentRef 等渲染了 PDF 现在工作正常 我成功地阅读了 Annots 字典 if CGPDFDictionaryGetArray page
  • 在情节提要中将 Segue 拖至自身

    我想将一个 Segue 从我的视图控制器拖到其自身 所以我可以推送该特定视图控制器的 无限 实例 我知道如何在代码中执行此操作 即以编程方式实例化视图控制器 但是 我想尽可能使用 segues 我发现了一些在故事板中进行自我延续的 技巧 但
  • 访问 google reader 的 Endpoints API 时出错

    我正在尝试在iPhone APP中实现google reader 到目前为止我已经成功收到了sid and auth 当我尝试使用以下命令调用 Endpoints API 时 问题就出现了GET 这是代码 ASIHTTPRequest re
  • 为arm64或arm7s编译OpenSSL FIPS功能库时出现未知的cpu类型

    我可以成功 至少没有警告并生成 a 文件 针对 arm7 x86 64 和 i386 进行编译 当我编译arm64时 我得到Unknown cpu type 100000c no adjustments made 当我编译arm7s时 我得
  • 命令 /Applications/Xcode-beta.app/Contents/Developer/usr/bin/atool 失败,退出代码 255

    它发生在新的 Xcode7 beta 中 CompileAssetCatalog Users admin Library Developer Xcode DerivedData InstaAd ddgdnbxlpxipirebpndfmgr
  • 在 Swift 中以编程方式为 iOS 制作带有名字首字母的图像,例如 Gmail

    我需要在 UITableView 中显示与其姓名相对应的每个用户的个人资料图片 在下载图像之前 我需要显示一张带有他名字的第一个字母的图像 就像在 GMail 应用程序中一样 如何在 Swift for iOS 中以编程方式执行此操作 不需
  • 使用 ZBarSDK 时 iPhone 相机失去自动对焦功能

    我正在开发一个应用程序 用户可以选择是否要扫描条形码或拍摄某物的照片 为了拍照 我正在使用UIImagePickerController照常 为了扫描条形码 我使用 ZbarSDK 1 2ZBarReaderViewController 拍
  • 开发者可以在 Windows 应用程序中使用 iCloud 吗?

    开发人员可以使用 Apple 的 iCloud API 在 Mac OS X 和 iOS 上的不同版本的应用程序之间同步应用程序数据 如果开发人员拥有 Windows 版本的应用程序 该版本是否也可以使用 iCloud 将应用程序数据与 M
  • 在 IOS 中从 iPhone 删除资产(图片或视频)

    我正在开发一个 Iphone 应用程序 我可以使用 Assetslibrary 枚举资产并将它们加载到表视图中 用户可以在应用程序中删除一行 图片 视频 但如何直接从我的应用程序更新 Iphone 相册 否则 刷新时 表视图将重新加载之前删
  • 启动深色或浅色模式的图像

    如何为深色模式和浅色模式选 择一组不同的启动图像 我有一个 LaunchImages 集 当应用程序启动时 会显示一个图像 对于浅色模式 这似乎不错 但是如果我尝试在设置为深色模式 iOS 13 的设备上打开我的应用程序 则该图像看起来很糟
  • HTML 分页

    有没有html分页的开源项目 我正在为 iPhone 开发一个应用程序 我想在 UIWebView 上显示 HTML 文件 并且不希望用户向下滚动以查看屏幕上未显示的剩余内容 我想在第二个 UIWebView 上显示剩余的内容 我怎样才能做
  • 如何解决malloc_error_break?

    我在 iOS 3 0 模拟器上遇到此错误 但在 3 1 3 和 3 2 模拟器上没有遇到此错误 创建符号断点后malloc error break 我在日志中看到了这一点 Session started at 2010 02 13 19 1

随机推荐

  • 在 Google 文档中的某些文本后附加列表项的更有效方法

    所以目前 我有一些代码可以让我插入ListItem在 Google 文档中的一段之后 我遇到的唯一问题是 对于我想要完成的任务来说 它似乎过于复杂 这是我的代码 var search This is a test var body Docu
  • 如何保持 .NET 控制台应用程序运行?

    考虑一个在单独线程中启动某些服务的控制台应用程序 它所需要做的就是等待用户按 Ctrl C 将其关闭 以下哪项是执行此操作的更好方法 static ManualResetEvent quitEvent new ManualResetEven
  • 在Python中对大量数组进行排序的最快方法

    我正在尝试在 python 中对大量数组进行排序 我需要一次对超过 1100 万个数组执行排序 另外 如果我可以直接获取对数组进行排序的索引 那就太好了 这就是为什么 到目前为止我正在使用 numpy argsort 但这在我的机器上太慢了
  • C# 代码覆盖率指标

    是否有免费的商用代码覆盖率工具 低至个人 LOC 级别 可用 我知道 VS2008 Team Edition 但不幸的是没有预算购买许可证 所以我正在寻找一种免费的 如啤酒 替代品 有任何想法吗 NCover是 NET 的开源代码覆盖工具
  • 为什么 N3421 不提供 noexcept 限定符?

    In N3421 使运算符函子变得更大 std 函数对象的新特化是 template lt gt struct plus
  • xsd:dateTime 到 Java OffsetDateTime

    为了妥善处理xs 日期时间使用 JAXB 我必须编写自己的转换器String gt java time OffsetDateTime 正如 XML 架构定义中提到的 dateTime 受到 ISO 8601 的启发 我使用OffsetDat
  • SocketIO:通过套接字ID断开客户端连接?

    我有一个带有 SocketIO 和多个连接的节点服务器 如何根据 ID 断开现有套接字 有房间 每个房间都有一个管理员和其他连接 我的目标是使管理套接字能够根据其 ID 使任何其他套接字断开连接 解决方法是向要被踢出的客户端发送一条消息以
  • valgrind:mmap(0x600000,8192)在UME中失败,错误12(无法分配内存)

    我正在关注这个练习 此页面包含安装 Valgrind 3 6 1 的说明 但我当前的 Linux 内核版本不支持此版本的 Valgrind 因此 我安装了 Valgrind 3 11 0 并在运行此命令后按照说明进行操作 valgrind
  • Grails Gorm 如何为每个具体类插入表,其中每个具体类都继承一个抽象类

    大家好 以下是情况 我有一个抽象类 AbstractProfile 和一个具体类 GoogleProfile abstract class AbstractProfile class GoogleProfile extends Abstra
  • C# 程序使用秒表来计时操作时冻结

    我有一个控制灯的 Windows 窗体程序 这种光有自己的类别 我可以做一些事情 比如打开和关闭它 改变颜色等 我可以毫无问题地做到这一点 然而 我想要做的是让灯持续特定的时间 即 100 毫秒或 300 毫秒 取决于使用情况 我尝试使用秒
  • 将 onlongclick 侦听器添加到警报对话框

    我在 android 中有一个 AlertDialog 其中包含来自 sqlite 的好友列表 当我单击列表中的好友姓名时 就会呼叫该好友 我想做的是将一个 longclicklistener 添加到列表中 这样系统就可以提示我删除列表中的
  • 有没有办法在 Postgres 中禁用函数重载

    我和我的用户不在 PL pgSQL 中使用函数重载 每个 模式 名称 元组总是有一个函数 因此 我们希望仅按名称删除函数 更改其签名而不必先删除它 等等 例如 考虑以下函数 CREATE OR REPLACE FUNCTION myfunc
  • 有没有办法在 python 中从头开始创建 .xlsm 文件?

    我在 mac 上使用 python 3 8 1 并尝试创建一个 xlsm文件从头开始 我看过 openpyxl 和 xlsxwriter 它们都能够创建 xlsx文件从头开始 两者都可以编辑现有的 xlsm文件 但我找不到任何有关实际创建的
  • SQLite INSERT ... ON CONFLICT ... WHERE ... DO UPDATE SET 的替代方案

    我正在 Linux 上运行一个使用 SQLite3 版本 3 7 17 的应用程序 这条语句出错了 INSERT INTO taxa taxon id rank parent id VALUES ON CONFLICT taxon id W
  • 从 python 脚本设置 bash 变量

    我在 bash 脚本中调用 python 脚本 我想知道是否有一种简单的方法可以在 python 脚本中设置 bash 变量 Example 我的 bash 脚本 bin bash someVar python3 some folder p
  • 使用 Ajax 和 beforeSend 显示图像

    我对 jquery 和 ajax 比较陌生 我对它们的可能性感到惊讶 我正在开发我的第一个 ajax jquery 带验证插件 网络表单 快完成了 但是有一点不明白 我想显示一个加载图标并使用 beforeSend 方法禁用发送按钮 但它不
  • 如何了解我的平板电脑支持哪些采样率?

    我有一个应用程序可以在许多设备 Xoom Xyboard 等 上完美运行 但在 Galaxy 10 1 上的这一行失败 mrec setAudioSamplingRate 44100 当我注释掉这一行时 一切都会顺利进行 我不确定它默认使用
  • R 中矩阵两列相乘之和

    我使用以下方法在 R 中生成一个矩阵 ncolumns 3 nrows 10 my mat lt matrix runif ncolumns nrows ncol ncolumns 该矩阵表示 3D 中点的坐标 R中如何计算以下值 sum
  • R中按组删除异常值

    在我的数据集中 我必须分别删除每个组的异常值 这是我的数据集 vpg structure list customer c 1L 1L 1L 1L 2L 2L 2L 2L 1L 1L 1L 1L 2L 2L 2L 2L code c 2L 2
  • iOS 15 - 前台通知不会播放通知声音

    在 iOS 15 中播放与通知相关的提示音而不显示横幅或列表的正确方法是什么 在前台处理通知时 无论是本地通知还是推送通知 如果出现以下情况 则不会播放通知声音 UNNotificationPresentationOptions只是soun