ios - 在 iOS 13 中,当用户在应用切换器中向上滑动我的应用时,我会收到哪些事件?
问题描述
当用户在 iOS 13 上的应用切换器中向上滑动我的应用时,我发现很难对我得到(或没有得到)的事件进行分类和解释。这似乎是由于多场景引起的变化支持。在那种情况下我会遇到什么事件?
解决方案
假设您的应用程序支持窗口场景。所以用户在应用切换器中向上滑动的实际上是一个场景,而不是你的整个应用。那么可能性似乎如下。
在 iPhone 上
如果场景在最前面:
sceneDidEnterBackground
applicationWillTerminate(_:)
但如果场景不在最前面,你将一无所获;你已经收到了sceneDidEnterBackground
,现在你不会收到,applicationWillTerminate(_:)
因为应用程序没有运行。
在 iPad 上,如果应用程序不支持多个窗口
如果场景在最前面:
sceneDidDisconnect(_:)
application(_:didDiscardSceneSessions:)
applicationWillTerminate(_:)
但如果场景不在最前面,你将一无所获;你已经收到了sceneDidEnterBackground
,现在你不会收到,applicationWillTerminate(_:)
因为应用程序没有运行。
在 iPad 上,如果应用确实支持多个窗口
如果场景在最前面:
sceneDidEnterBackground
applicationWillTerminate(_:)
(也许)
但如果场景不在最前面,你将一无所获;您已经收到sceneDidEnterBackground
,现在您不会收到,applicationWillTerminate(_:)
因为应用程序未运行或应用程序未终止(如果有另一个窗口)。如果该应用程序仍在运行,您可能会得到sceneDidDisconnect(_:)
并且可能application(_:didDiscardSceneSessions:)
稍后。
结论
这里有什么奇怪的人?这是我们在 iPad 上运行的情况,我们支持场景但不支持多个窗口。我们不明白sceneDidEnterBackground
!我认为这是不连贯的。因为我们不支持多个窗口,所以这基本上是一个 iPhone 应用程序,它的行为应该像一个 iPhone 应用程序。我不应该仅仅因为我的应用程序在 iPhone 和 iPad 上都运行而将我的代码加倍。
推荐阅读
- node.js - 创建子文档时,它只显示 id - 不显示创建的子文档数据
- flutter - 在 PdfViewerScaffold 上颤振 PopupMenu 条目
- react-native - 获取新更新失败
- javascript - 替换 URL,无论是 http 还是 https
- google-sheets - 如何在一个查询中从不同工作表返回多个范围
- javascript - Ajax 或 Django Rest 框架对 Post Data 的行为很奇怪
- r - 为什么我在 lmerTest 中使用 ls_means 语句得到空结果?
- flutter - 为什么 ConstrainedBox 从 FittedBox 中泄漏出来
- python - 带有硒的 Instagram 刮刀
- azure-active-directory - EasyAuth 与不同主机上的 SPA 和 AzureFunction