使用ScreenTime API,我有一个应用程序屏蔽了2个按钮操作:一个用于移除屏蔽并正常打开应用程序,另一个用于保持屏蔽应用程序并打开父应用程序。
有没有办法从扩展打开父应用程序?
class ShieldActionExtension: ShieldActionDelegate {
override func handle(action: ShieldAction, for application: ApplicationToken, completionHandler: @escaping (ShieldActionResponse) -> Void) {
// Handle the action as needed.
let store = ManagedSettingsStore()
switch action {
case .primaryButtonPressed:
//open parent app
completionHandler(.defer)
case .secondaryButtonPressed:
//remove shield
store.shield.applications?.remove(application)
completionHandler(.defer)
@unknown default:
fatalError()
}
}
1条答案
按热度按时间muk1a3rh1#
到目前为止,还没有办法通过API来实现这一点。
我使用的一个变通方法是为ManagedSettings屏蔽设置阈值0秒。然后,当应用程序打开时,达到阈值,并且将调用DeviceActivityMonitorExtension的委托方法。在委托方法中,您可以创建并立即传递本地通知。
用户将以横幅形式收到本地通知,然后可以点击它进入应用程序。
这将要求用户1)为您的应用启用通知,2)目前不处于静音模式。