如何检测另一个应用程序是否在iOS 11中作为幻灯片运行?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何检测另一个应用程序是否在iOS 11中作为幻灯片运行?相关的知识,希望对你有一定的参考价值。
多任务处理功能在ios 11中得到了更新,其中一个是slide over,在下面的gif中进行了演示。
通过这些更改,不再可能使用techniques that check frame size from iOS 9来检测是否有其他应用程序在我的应用程序上“滑过”。
是否有任何新方法可以检测另一个应用是否以幻灯片形式运行?
我能够在iPad Pro(它支持并排应用程序,而不仅仅是幻灯片)上轻松地使用它。这是代码:
class ViewController: UIViewController {
override func viewWillLayoutSubviews() {
isThisAppFullScreen()
}
@discardableResult func isThisAppFullScreen() -> Bool {
let isFullScreen = UIApplication.shared.keyWindow?.frame == UIScreen.main.bounds
print("(#function) - (isFullScreen)")
return isFullScreen
}
}
最终结果是,如果视图是全屏,它将打印“true”,如果它与另一个应用程序共享屏幕,则打印为“false”,并且每次显示,隐藏或调整大小时都会运行此操作。
我做了一个简单的视频显示结果,这里:
https://www.dropbox.com/s/g8pqboj9jjhnlca/FullScreenOrNotTest.mov?dl=0
那么问题是只支持滑动的旧设备。有了这些,您的应用程序将不再调整大小。相反,它只是辞职正在使用,而另一个应用程序正在变得活跃。
在这种情况下,你所能做的只是将逻辑放在AppDelegate
中寻找applicationWillResignActive
和applicationDidBecomeActive
。当你滑过时,你会得到applicationWillResignActive
而不是applicationDidEnterBackground
。
您可以将此作为一种可能性进行查找,但无法区分滑动和通知从屏幕顶部向下滑动。由于这个原因,它并不理想,但监控应用程序生命周期可能是您可以做的最好的。
以上是关于如何检测另一个应用程序是否在iOS 11中作为幻灯片运行?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Java 将 OpenOffice 幻灯片从一个演示文稿复制到另一个演示文稿