如何从包含的macOS应用程序获取Safari App Extension的状态(启用/禁用)?

时间:2018-10-05 03:50:25

标签: safari-app-extension

我正在开发Safari应用程序扩展,它必须包含在containing macOS app中。当用户安装此应用时,该扩展程序将添加到Safari,但默认情况下处于禁用状态。我可以使用SFSafariApplication.showPreferencesForExtension将用户定向到Safari首选项。

我还想检测扩展的状态(启用/禁用),以便仅在启用扩展后才要求启用扩展,并在启用后更改包含应用程序中的视图。我的扩展程序不是内容阻止程序,因此我认为我不能使用SFContentBlockerManager.getStateOfContentBlocker。我该如何实现?

1 个答案:

答案 0 :(得分:1)

此类可通过其getStateOfSafariExtension方法查询扩展状态:SFSafariExtensionManager

Swift 4示例:

SFSafariExtensionManager.getStateOfSafariExtension(withIdentifier: ...) { (state, error) in if state?.isEnabled ?? false { // it's enabled } else { // it's disabled } }