代码之家  ›  专栏  ›  技术社区  ›  zoul

正在检测是否已安装并启用Safari应用程序扩展

  •  2
  • zoul  · 技术社区  · 7 年前

    我有一个Safari应用程序扩展。有没有办法检测 来自包含应用程序 是否已在Safari中成功安装并启用扩展?这些文件还有很多需要改进的地方。

    1 回复  |  直到 7 年前
        1
  •  1
  •   l'L'l    7 年前

    通常检查的方法是通过 SFSafariExtensionState 和 SFSafariExtensionManager 如果启用,则安装。

    例子 :

    let extensionIdentifier = "com.acme.MyAppExtension"
    
    @IBOutlet weak var label: NSTextField!
    @IBOutlet weak var statusImage: NSImageView!
    
    func checkAppExtension() {
        SFSafariExtensionManager.getStateOfSafariExtension(withIdentifier: extensionIdentifier) { (state, error) in
            DispatchQueue.main.async {
                if (state?.isEnabled ?? false) {
                    self.label.stringValue = "MyApp Extension for Safari is enabled"
                    self.statusImage.image = NSImage(named: "enabled")
                } else {
                    self.label.stringValue = "MyApp Extension for Safari is currently disabled"
                    self.statusImage.image = NSImage(named: "disabled")
                }
            }
        }
    }