如何从safari工具栏项目应用程序扩展获取safari内容拦截器应用程序扩展的状态(启用/禁用)?

时间:2018-05-23 06:20:00

标签: safari-content-blocker safari-app-extension

我正在使用Safari内容拦截器和Safari工具栏项扩展来开发mac应用程序。

我可以从mac app(包含应用程序)获取Safari中Content Blocker扩展(启用/禁用)的状态,并能够在禁用内容拦截器的mac应用程序内显示警告。

但是,有什么方法可以从Safari工具栏项扩展中获取内容拦截器扩展的状态(启用/禁用)?

以下是当用户单击Safari工具栏项目时弹出窗口可见时执行的代码。

class SafariExtensionViewController: SFSafariExtensionViewController {

    // This function is called from the 
    // SafariExtensionHandler > popoverWillShow(in window: SFSafariWindow)        
    func onPopoverVisible() {

        SFContentBlockerManager.getStateOfContentBlocker(withIdentifier: "com.xyz.macapp.contentblocker") { (state, error) in
            guard let state = state else {
                 // handle the error
                 return
            }
            if state.isEnabled {
                // display toolbar items and hide warning message
            } else {
                // display warning message and hide toolbar items
            }
        }
    }
}

执行上述代码时,state.isEnabled始终为false

是否有可能从另一个扩展获得一个扩展的状态?如果有,怎么样?如果不是,有没有办法处理这种情况?

0 个答案:

没有答案