【问题标题】:Mac OS X Safari 6 default search engine change between possible valuesMac OS X Safari 6 默认搜索引擎在可能值之间发生变化
【发布时间】:2012-10-03 00:56:05
【问题描述】:

我想在 Mac OS X 上以编程方式更改 Safari 默认搜索引擎。我知道有 3 个可能的值,但 Safari 将当前值存储在哪里?我想从可可代码从谷歌更改为雅虎。可能吗?

我在com.apple.Safari.plist 文件中看到SearchProviderIdentifierMigratedToSystemPreference 变量设置为YES,可以位于~/Library/Preferences。这可能是当前值的关键,但“系统偏好”存储在哪里?你有这方面的线索吗?


更新:我发现这个命令defaults read -g NSPreferredWebServices 总是返回选择的默认搜索引擎。这样做的问题是,当我更改它的值时,safari 不会更改值。
这是将值更改为 Bing 的命令:
defaults write -g NSPreferredWebServices '{NSWebServicesProviderWebSearch = { NSDefaultDisplayName = Bing; NSProviderIdentifier = "com.bing.www"; }; }';

这个命令应该在终端中执行。

【问题讨论】:

  • 你解决了吗?
  • 不,抱歉。我没有,从那以后我还有其他任务要做。我把问题留在这里,因为我仍然感兴趣。

标签: cocoa safari osx-mountain-lion safari6


【解决方案1】:

显然(在 macOS 11.5 上测试),NSPreferredWebServices 设置了系统搜索引擎(例如,当使用 Spotlight 启动网络搜索时,Spotlight 会重定向您)。
每当 Safari 的搜索引擎更新时,此密钥就会更新。

当 Safari 的搜索引擎发生变化时,另一个密钥也会更新:SearchProviderShortName(在域 com.apple.Safari 中)。显然,这是为了改变 Safari 的搜索引擎而进行的更新。 (设置为 DuckDuckGo 以使用 DuckDuckGo 为例。)

以前(在 SearchProviderIdentifierMigratedToSystemPreference 之前),DuckDuckGo 搜索引擎的键是 SearchProviderIdentifier,值是 com.duckduckgo

我的建议是将它们全部设置为安全:

defaults write -g NSPreferredWebServices '{NSWebServicesProviderWebSearch = { NSDefaultDisplayName = Bing; NSProviderIdentifier = "com.bing.www"; }; }'
defaults write com.apple.Safari SearchProviderIdentifier -string com.bing.www
defaults write com.apple.Safari SearchProviderShortName -string Bing

相关问题:https://stackoverflow.com/a/16224386

【讨论】:

    猜你喜欢
    • 2011-01-25
    • 2011-11-09
    • 2015-02-17
    • 1970-01-01
    • 2015-02-03
    • 1970-01-01
    • 2018-04-09
    • 2020-06-03
    相关资源
    最近更新 更多