我正在使用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
。
是否有可能从另一个扩展获得一个扩展的状态?如果有,怎么样?如果不是,有没有办法处理这种情况?