6

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

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


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

该命令应在终端中执行。

4

1 回答 1

1

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

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

以前(之前SearchProviderIdentifierMigratedToSystemPreference),键是SearchProviderIdentifier,值是com.duckduckgoDuckDuckGo 搜索引擎。

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

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

于 2021-07-26T00:02:49.980 回答