systemPreferences

获取系统偏好设置。

可使用的进程:主进程

const {systemPreferences} = require('electron')
console.log(systemPreferences.isDarkMode())

事件

systemPreferences对象会触发以下事件:

Event: 'accent-color-changed'Windows

返回:

  • eventEvent
  • newColorString - 用户给系统颜色设置的新的 RGBA 色值。

Event: 'color-changed'Windows

返回:

  • eventEvent

Event: 'inverted-color-scheme-changed'Windows

返回:

  • eventEvent
  • invertedColorSchemeBoolean - 如果一个反色的配色方案正在被使用,比如一个高对比度的主题,则返回true,否则返回false

方法

systemPreferences.isDarkMode()macOS

返回Boolean- 系统是否处于深色模式。

systemPreferences.isSwipeTrackingFromScrollEventsEnabled()macOS

返回Boolean- 是否开启页面间滑动功能。

systemPreferences.postNotification(event, userInfo)macOS

  • eventString
  • userInfoObject

在 macOS 上使用原生系统通知来发布eventuserInfo是包含了用户向通知发送的信息字典的一个对象。

systemPreferences.postLocalNotification(event, userInfo)macOS

  • eventString
  • userInfoObject

在 macOS 上使用原生系统通知来发布eventuserInfo是包含了用户向通知发送的信息字典的一个对象。

systemPreferences.subscribeNotification(event, callback)macOS

  • eventString
  • callbackFunction
    • eventString
    • userInfoObject

在 macOS 上订阅一个原生消息。当相关event发生,callback将会被callback(event, userInfo)调用。userInfo是包含了用户向通知发送的信息字典的一个对象。

订阅者的id将会被返回,它能够用于取消订阅相关event

这个API在底层上订阅于NSDistributedNotificationCenterevent的一些实例值如下:

  • AppleInterfaceThemeChangedNotification
  • AppleAquaColorVariantChanged
  • AppleColorPreferencesChangedNotification
  • AppleShowScrollBarsSettingChanged

systemPreferences.unsubscribeNotification(id)macOS

  • idInteger

移除当前id下的订阅。

systemPreferences.subscribeLocalNotification(event, callback)macOS

  • eventString
  • callbackFunction
    • eventString
    • userInfoObject

大体上如同subscribeNotification,但默认使用本地subscribeNotification。一些事件必须使用它,比如NSUserDefaultsDidChangeNotification

systemPreferences.unsubscribeLocalNotification(id)macOS

  • idInteger

大体上如同unsubscribeNotification, 但是是从NSNotificationCenter中移除订阅者。

systemPreferences.getUserDefault(key, type)macOS

  • keyString
  • typeString - Can bestring,boolean,integer,float,double,url,array,dictionary

获取系统偏好中相应的key的值。

这个 API 在 macOS 系统中使用的是NSUserDefaults。以下是一些热门的keytype

  • AppleInterfaceStyle:string
  • AppleAquaColorVariant:integer
  • AppleHighlightColor:string
  • AppleShowScrollBars:string
  • NSNavRecentPlaces:array
  • NSPreferredWebServices:dictionary
  • NSUserDictionaryReplacementItems:array

systemPreferences.setUserDefault(key, type, value)macOS

  • keyString
  • typeString - 详见 [getUserDefault][#systempreferencesgetuserdefaultkey-type-macos]
  • valueString

设置系统偏好中相应的key的值。

需要注意的是type需要与实际的类型的value对应。不然会抛出一个异常。

这个 API 在 macOS 系统中使用的是NSUserDefaults。以下是一些热门的keytype

  • ApplePressAndHoldEnabled:boolean

systemPreferences.isAeroGlassEnabled()Windows

如果DWM composition(毛玻璃效果)开启则会返回true否则返回false

以下是一个实例去使用它来确定是否应该创建一个透明的窗口(透明的窗口在 DWM composition 禁止的情况下无法正确运行):

const {BrowserWindow, systemPreferences} = require('electron')
let browserOptions = {width: 1000, height: 800}

// 如果平台支持的话便新建一个透明的窗口。
if (process.platform !== 'win32' || systemPreferences.isAeroGlassEnabled()) {
  browserOptions.transparent = true
  browserOptions.frame = false
}

// 创建窗口。
let win = new BrowserWindow(browserOptions)

// 区分环境进行加载。
if (browserOptions.transparent) {
  win.loadURL(`file://${__dirname}/index.html`)
} else {
  // No transparency, so we load a fallback that uses basic styles.
  win.loadURL(`file://${__dirname}/fallback.html`)
}

systemPreferences.getAccentColor()Windows

返回String- 用户当前系统颜色偏好的16进制 RGBA 色值。

const color = systemPreferences.getAccentColor() // `"aabbccdd"`
const red = color.substr(0, 2) // "aa"
const green = color.substr(2, 2) // "bb"
const blue = color.substr(4, 2) // "cc"
const alpha = color.substr(6, 2) // "dd"

systemPreferences.getColor(color)Windows

  • colorString - 接下来的一个值:
    • 3d-dark-shadow- 3D 元素的暗部的色值。
    • 3d-face- 3D 肤色,以及对话框背景。
    • 3d-highlight- 高亮的3D元素。
    • 3d-light- 3D 元素亮部。
    • 3d-shadow- 3D 元素的阴影。
    • active-border- 活跃窗口边框。
    • active-caption- 活跃窗口标题。 具体来说是指开启渐变效果下活跃窗口中左侧色彩梯度。
    • active-caption-gradient- 活跃窗口标题栏中右侧颜色梯度。
    • app-workspace- 多文档(MDI)应用界面背景颜色。
    • button-text- 推送按钮的文本。
    • caption-text- 标题栏,尺寸框,滚动条尖头框上的文本。
    • desktop- 桌面背景颜色。
    • disabled-text- 灰色(禁止的)文本。
    • highlight- 元素的元素。
    • highlight-text- 选中的文本。
    • hotlight- 热链或者超链接的色值。
    • inactive-border- 不活跃窗口的边框。
    • inactive-caption- 不活跃窗口标题。具体来说是指开启渐变效果下不活跃窗口中左侧色彩梯度。
    • inactive-caption-gradient- 不活跃窗口标题栏中右侧色彩梯度。
    • inactive-caption-text- 不活跃的标题文本。
    • info-background- 工具栏背景。
    • info-text- 工具栏文本。
    • menu- 菜单背景。
    • menu-highlight- 当菜单作为平面菜单时高亮的菜单颜色。
    • menubar- 当菜单作为平面菜单时菜单栏背景。
    • menu-text- 菜单文本。
    • scrollbar- 滚动条灰色区域。
    • window- 窗口背景。
    • window-frame- 窗口框架。
    • window-text- 窗口内文本。

返回String- 系统设置色值的16进制形式(#ABCDEF)。 详见Windows docs获取更多细节。

systemPreferences.isInvertedColorScheme()Windows

返回Boolean- 如果一个反色的配色方案正在被使用,比如一个高对比度的主题,则返回true,否则返回false

results matching ""

    No results matching ""