首页 > 解决方案 > 如何以编程方式启用 Safari 应用程序扩展?

问题描述

我正在 macOS 应用程序中开发 Safari 应用程序扩展。当用户安装此应用程序时,该扩展程序会添加到 Safari,但默认情况下是禁用的。我们可以通过SFSafariExtensionManager类的 getStateOfSafariExtension 方法来检测扩展的状态。

现在我想以编程方式启用扩展状态,如果它被禁用。我怎样才能做到这一点?或者有谁知道偏好/应用程序扩展设置存储在 macOS 中的什么位置?

标签: safarimacos-high-sierrasafari-app-extension

解决方案


您可以创建一个按钮,例如“打开扩展首选项”,以直接为您的扩展显示 Safari 首选项,然后用户可以启用它。

您的应用程序的代码:

import SafariServices

func enableExtension () {
    SFSafariApplication.showPreferencesForExtension(withIdentifier: YOUR_EXTENSION_IDENTIFIER) { (error) in
        NSLog("Error \(String(describing: error))")
    }
}

SFSafariApplication只能在 Cocoa 应用程序中使用(不能扩展)。


推荐阅读