【问题标题】:How to enable Safari App Extension programmatically?如何以编程方式启用 Safari 应用程序扩展?
【发布时间】:2019-03-06 03:18:30
【问题描述】:

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

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

【问题讨论】:

    标签: safari macos-high-sierra safari-app-extension


    【解决方案1】:

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

    您的应用的代码:

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

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

    【讨论】:

    • 我已经知道如何使用 SFSafariApplication 类打开扩展首选项窗口。我想在没有用户交互的情况下启用扩展。
    • 出于安全原因,这是不可能的。如果扩展可以在没有用户意图的情况下管理其他扩展怎么办?对,把这种能力给扩展是不好的。
    • @ВадимГолденко 是否有通过代码禁用它或就像启用一样,它也受到苹果的限制?
    猜你喜欢
    • 2017-10-14
    • 2017-07-08
    • 1970-01-01
    • 2020-07-29
    • 1970-01-01
    • 1970-01-01
    • 2014-05-25
    • 2011-09-30
    • 1970-01-01
    相关资源
    最近更新 更多