检查当前设备在扩展中是否有缺口

Chr*_*ris 1 layout ios swift

我的应用程序有一个ShareExtension,我需要知道当前设备是否有缺口。

该函数适用于正常应用:

var hasBottomNotch: Bool {
    if #available(iOS 11.0, tvOS 11.0, *) {
        return UIApplication.shared.delegate?.window??.safeAreaInsets.bottom ?? 0 > 20
    }
    return false
}
Run Code Online (Sandbox Code Playgroud)

不幸的是我不能在我的扩展中使用它:

“共享”在 iOS 的应用程序扩展中不可用:在适当的情况下使用基于视图控制器的解决方案。

有什么解决方法吗?

Sh_*_*han 6

你可以试试

return self.view.safeAreaInsets.bottom > 20
Run Code Online (Sandbox Code Playgroud)

顺便说一句,您可以检查设备型号(如果是通过 Iphone-X ),您也可以将该布尔值保存在主应用程序的共享套件默认值中,然后在扩展程序中检查它