我正在开发带有 Safari Content Blocker 和 Safari Toolbar Item 扩展的 mac 应用程序。
我能够从 mac 应用程序(包含应用程序)获取 Safari 中的 Content Blocker 扩展(启用/禁用)的状态,并能够在 mac 应用程序内显示 Content Blocker 已禁用的警告。
但是有什么方法可以让我从 Safari 工具栏项扩展中获取 Content Blocker 扩展的状态(启用/禁用)?
这是当用户单击 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
.
是否可以从另一个扩展中获取一个扩展的状态?如果是,如何?如果没有,有没有办法处理这种情况?