检测应用何时滑过 iPad 上的 运行 应用

Detect when App is Slide Over on top of running app on iPad

我们有一个 WebRTC Swift 4.2 应用程序使用 Google 的本机 WebRTC 代码。我们在 iPads.

上遇到 Apple 的 App Slide Over Multitasking 功能问题

问题:

我们看到的是,当我们的应用程序 运行 在 iPad 的视频通话中时,只要另一个应用程序是 'Slide Over' 我们的应用程序,我们的应用程序就会停止使用该视频相机和麦克风,直到 Slide Over 应用程序关闭。关闭后,我们的应用程序会取回麦克风和摄像头。

预期结果:

我们的应用程序仍然可以使用摄像头和麦克风,用户可以同时使用这两个应用程序。

问题:

我们是否需要打开一个设置来禁止 Slide Over 应用程序?如果没有,是否有我们可以在滑过发生时订阅的事件,以便我们可以再次请求摄像头和麦克风访问权限?

我们做了什么:

  1. 我们已在项目设置中将我们的应用程序设置为需要全屏。
  2. 我们已尝试在 AppDelegate 上订阅以下事件: applicationDidEnterBackground、applicationWillResignActive、applicationDidBecomeActive。这些事件会在初始 Slide Over 应用程序打开和关闭时触​​发一次,但不会在同一应用程序的连续 Slide Overs 之后触发。
  3. 打开所有后台模式功能。没有效果。
  4. 在我们的 ViewController.swift 上,我们尝试订阅 viewWillLayoutSubviews 事件。对于使用 Slide Over 打开的应用程序,不会触发此事件。

版本:

我向 Apple 提交了错误报告,他们说,

"This sounds like expected behavior, given that only one foreground app is allowed at a time."