在iOS 15上查询Focus模式的API是什么?

2eafrhcq  于 12个月前  发布在  iOS
关注(0)|答案(3)|浏览(136)

iOS 15推出Focus模式苹果提到,通信应用程序可以查询设备当前是否处于Focus状态,这样我们就可以告诉对方他们可能不会收到消息通知。但是我在苹果文档中找不到API。有人知道吗?

izkcnapc

izkcnapc1#

参见https://developer.apple.com/forums/thread/682143
焦点状态中心

import Intents

/// Retrieve the current authorization status: INFocusStatusAuthorizationStatus
INFocusStatusCenter.default.authorizationStatus

/// Request authorization to check Focus Status
//
INFocusStatusCenter.default.requestAuthorization { status in
    /// Provides a INFocusStatusAuthorizationStatus
}

/// Check if Focus is enabled. INFocusStatusAuthorizationStatus must be .authorized
INFocusStatusCenter.default.focusStatus.isFocused

您需要将NSFocusStatusUsageDescription添加到Info.plist
https://onesignal.com/blog/ios-notification-changes-updates-from-apples-wwdc-21/

72qzrwbm

72qzrwbm2#

我认为这可能会有所帮助:https://developer.apple.com/documentation/sirikit/infocusstatus
苹果在其iOS 15开发者网站上表示:“通过Focus,用户可以在最适合他们的时间发送通知,而通过中断级别API,您可以通过四个中断级别之一(包括新的被动和时间敏感级别)提供更细致的发送。apple.com
如果上面的链接没有帮助,也许上面的报价会有所帮助。

l7mqbcuq

l7mqbcuq3#

var isFocus = INFocusStatusCenter.default.focusStatus.isFocused!它只返回假如果焦点状态是关闭的设置,请打开焦点状态,那么它将返回真.
要做到这一点,转到请勿打扰屏幕在底部,将有一个按钮“焦点状态”来打开它现在尝试var isFocus = INFocusStatusCenter.default.focusStatus.isFocused!

相关问题