从 iOS 中的 ShieldAction 扩展打开父应用程序

问题描述 投票:0回答:2

使用 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()
    }
    
   
}
ios swift
2个回答
5
投票

目前还无法通过 API 执行此操作。

我使用的一个解决方法是为 ManagedSettings 屏蔽设置 0 秒的阈值。然后,当应用程序打开时,就会达到阈值,并且将调用 DeviceActivityMonitorExtension 的委托方法。在该委托方法中,您可以创建并立即传递本地通知。

用户将收到横幅形式的本地通知,然后可以单击它进入您的应用程序。

这将要求用户 1) 为您的应用启用通知,2) 目前不处于静音模式。


0
投票

有一些应用程序,例如https://apps.apple.com/us/app/app-lock/id6448239603,可以从屏蔽打开主应用程序。尚未找到获得相同行为的方法。

© www.soinside.com 2019 - 2024. All rights reserved.