在iOS中从ShieldAction扩展打开父应用

oogrdqng  于 2023-06-25  发布在  iOS
关注(0)|答案(1)|浏览(326)

使用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()
    }
    
   
}
muk1a3rh

muk1a3rh1#

到目前为止,还没有办法通过API来实现这一点。
我使用的一个变通方法是为ManagedSettings屏蔽设置阈值0秒。然后,当应用程序打开时,达到阈值,并且将调用DeviceActivityMonitorExtension的委托方法。在委托方法中,您可以创建并立即传递本地通知。
用户将以横幅形式收到本地通知,然后可以点击它进入应用程序。
这将要求用户1)为您的应用启用通知,2)目前不处于静音模式。

相关问题