15. systemPreferences

原文:https://github.com/electron/electron/blob/master/docs/api/system-preferences.md
譯者:Lin

獲取系統(tǒng)偏好設(shè)置

進(jìn)程:主進(jìn)程

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

事件

systemPreferences對(duì)象分發(fā)下面事件:

事件: 'accent-color-changed' Windows

返回值:

  • event Event類型
  • newColor String類型 - 用戶指定作為他們系統(tǒng)顏色的新的RGBA格式的顏色续挟。

事件: 'color-changed' Windows

返回值:

  • event Event類型

事件: 'inverted-color-scheme-changed' Windows

返回值:

  • event Event類型
  • invertedColorScheme Boolean類型 - 如果是反向配色方案,例如一個(gè)高對(duì)比度的主題將要被使用,則這個(gè)值為true碍岔。否則這個(gè)值為false勇垛。

方法

systemPreferences.isDarkMode() MacOS

返回值為Boolean類型 - 系統(tǒng)是否是深色模式胜卤。

systemPreferences.isSwipeTrackingFromScrollEventsEnabled() MacOS

返回值為Boolean類型 - 是否開啟頁(yè)面之間的切換丧靡。

systemPreferences.postNotification(event, userInfo) MacOS

  • event String類型
  • userInfo Object類型

event作為MacOS的本地通知發(fā)送祖能。userInfo是一個(gè)和通知一起發(fā)送的包含了用戶信息字典的對(duì)象歉秫。

systemPreferences.postLocalNotification(event, userInfo) MacOS

  • event String類型
  • userInfo Object類型

event作為MacOS的本地通知發(fā)送。userInfo是一個(gè)和通知一起發(fā)送的包含了用戶信息字典的對(duì)象养铸。

systemPreferences.subscribeNotification(event, callback) MacOS

  • event String類型
  • callback Function類型
    • event String類型
    • userInfo Object類型

訂閱MacOS的本地通知雁芙,當(dāng)對(duì)應(yīng)的event發(fā)生的時(shí)候callback將會(huì)使用callback(event, userInfo)被調(diào)用。userInfo是一個(gè)和通知一起發(fā)送的包含了用戶信息字典的對(duì)象钞螟。

返回訂閱器的id兔甘,可以用來(lái)取消訂閱event

這個(gè)接口的本質(zhì)是訂閱NSDistributedNotificationCenter鳞滨,例如event的值可以是:

  • AppleInterfaceThemeChangedNotification
  • AppleAquaColorVariantChanged
  • AppleColorPreferencesChangedNotification
  • AppleShowScrollBarsSettingChanged

systemPreferences.unsubscribeNotification(id) MacOS

  • id Integer類型

通過(guò)id移除訂閱器洞焙。

systemPreferences.subscribeLocalNotification(event, callback) MacOS

  • event String類型
  • callback Function類型
    • event String類型
    • userInfo Object類型

subscribeNotification一樣,不過(guò)本地是默認(rèn)使用NSNotificationCenter拯啦。這個(gè)對(duì)于事件是必要的澡匪,例如NSUserDefaultsDidChangeNotification

systemPreferences.unsubscribeLocalNotification(id) MacOS

  • id Integer類型

unsubscribeNotification一樣,不過(guò)是從NSNotificationCenter中移除訂閱器褒链。

systemPreferences.getUserDefault(key, type) MacOS

  • key String類型
  • type String類型 - 可以是string唁情、booleaninteger甫匹、float甸鸟、doubleurl兵迅、array哀墓、dictionary

通過(guò)key來(lái)獲取系統(tǒng)偏好設(shè)置里面對(duì)應(yīng)的值。

這個(gè)接口在MacOS中使用NSUserDefaults喷兼。一些常用的keytype有:

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

systemPreferences.setUserDefault(key, type, value) MacOS

  • key String類型
  • type String類型 - 查看getUserDefault
  • value String類型

通過(guò)key來(lái)設(shè)置系統(tǒng)偏好設(shè)置里面對(duì)應(yīng)的值篮绰。

請(qǐng)注意,type應(yīng)該和value的實(shí)際類型匹配季惯。如果不匹配將會(huì)拋出一個(gè)錯(cuò)誤吠各。An exception is thrown if they don't.

這個(gè)接口在MacOS中使用NSUserDefaults。一些常用的keytype有:

  • ApplePressAndHoldEnabled: boolean

systemPreferences.isAeroGlassEnabled() Windows

如果DWM composition(毛玻璃效果)被激活勉抓,那么這個(gè)方法將返回true贾漏,否則將返回false

一個(gè)使用這個(gè)接口的例子藕筋,來(lái)決定是否你需要?jiǎng)?chuàng)建一個(gè)透明窗口(當(dāng)DWM composition被禁用的時(shí)候透明窗口將不能正常的工作):

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

// Make the window transparent only if the platform supports it.
if (process.platform !== 'win32' || systemPreferences.isAeroGlassEnabled()) {
    browserOptions.transparent = true
    browserOptions.frame = false
}

// Create the window.
let win = new BrowserWindow(browserOptions)

// Navigate.
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類型 - 十六進(jìn)制RGBA格式的用戶當(dāng)前系統(tǒng)顏色偏好纵散。

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

  • color String類型 - 使用以下值之一:
    • 3d-dark-shadow - 顯示的3D元素的深色陰影顏色。
    • 3d-face - 顯示的3D元素和對(duì)話框背景的表面顏色。
    • 3d-highlight - 顯示的3D元素的高亮顏色伍掀。
    • 3d-light - 顯示的3D元素的光亮的顏色掰茶。
    • 3d-shadow - 顯示的3D元素的陰影的顏色。
    • active-border - 活動(dòng)窗口的邊框的顏色蜜笤。
    • active-caption - 活動(dòng)窗口的標(biāo)題欄濒蒋。如果開啟了顏色梯度變化,那么這個(gè)值是活動(dòng)窗口標(biāo)題欄最左側(cè)的顏色把兔。
    • active-caption-gradient - 活動(dòng)窗口標(biāo)題欄最右側(cè)的顏色沪伙。
    • app-workspace - 多文檔界面(MDI)應(yīng)用的背景顏色。
    • button-text - 推送按鈕的文字的顏色县好。
    • caption-text - 標(biāo)題欄的文字围橡、縮放框和滾動(dòng)條剪頭框的顏色。
    • desktop - 桌面背景顏色缕贡。
    • disabled-text - 灰色(無(wú)效的)文本的顏色某饰。
    • highlight - 控件中選中項(xiàng)的顏色。
    • highlight-text - 控件中選中項(xiàng)的文本的顏色善绎。
    • hotlight - 超鏈接或熱跟蹤項(xiàng)的顏色黔漂。
    • inactive-border - 非活動(dòng)窗口邊框的顏色。
    • inactive-caption - 非活動(dòng)窗口的標(biāo)題欄的顏色禀酱。如果開啟了顏色梯度變化炬守,那么這個(gè)值是活動(dòng)窗口標(biāo)題欄最左側(cè)的顏色。
    • inactive-caption-gradient - 非活動(dòng)窗口標(biāo)題欄最右側(cè)的顏色剂跟。
    • inactive-caption-text - 非活動(dòng)標(biāo)題欄的文字的顏色减途。
    • info-background - 工具提示控件的背景顏色。
    • info-text - 工具提示控件的文本顏色曹洽。
    • menu - 菜單背景顏色鳍置。
    • menu-highlight - 菜單欄為平面菜單時(shí)的菜單項(xiàng)的高亮顏色。
    • menubar - 菜單欄為平面菜單時(shí)的背景顏色送淆。
    • menu-text - 菜單的文字顏色税产。
    • scrollbar - 滾動(dòng)條灰色區(qū)域的顏色。
    • window - 窗口背景色偷崩。
    • window-frame - 窗口框架顏色辟拷。
    • window-text - 窗口內(nèi)的文本顏色。

返回值為String類型 - 十六進(jìn)制的RGB格式(#ABCDEF)的系統(tǒng)顏色設(shè)置阐斜。查看Windows docs獲取更詳細(xì)信息衫冻。

systemPreferences.isInvertedColorScheme() Windows

返回值為Boolean類型 - 如果是反向配色方案,例如一個(gè)高對(duì)比度的主題將要被使用谒出,則這個(gè)值為true隅俘。否則這個(gè)值為false邻奠。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市为居,隨后出現(xiàn)的幾起案子碌宴,更是在濱河造成了極大的恐慌,老刑警劉巖颜骤,帶你破解...
    沈念sama閱讀 222,627評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件唧喉,死亡現(xiàn)場(chǎng)離奇詭異捣卤,居然都是意外死亡忍抽,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門董朝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)鸠项,“玉大人,你說(shuō)我怎么就攤上這事子姜∷畎恚” “怎么了?”我有些...
    開封第一講書人閱讀 169,346評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵哥捕,是天一觀的道長(zhǎng)牧抽。 經(jīng)常有香客問(wèn)我,道長(zhǎng)遥赚,這世上最難降的妖魔是什么扬舒? 我笑而不...
    開封第一講書人閱讀 60,097評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮凫佛,結(jié)果婚禮上讲坎,老公的妹妹穿的比我還像新娘。我一直安慰自己愧薛,他們只是感情好晨炕,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,100評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著毫炉,像睡著了一般瓮栗。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上瞄勾,一...
    開封第一講書人閱讀 52,696評(píng)論 1 312
  • 那天遵馆,我揣著相機(jī)與錄音,去河邊找鬼丰榴。 笑死货邓,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的四濒。 我是一名探鬼主播换况,決...
    沈念sama閱讀 41,165評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼职辨,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了戈二?” 一聲冷哼從身側(cè)響起舒裤,我...
    開封第一講書人閱讀 40,108評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎觉吭,沒(méi)想到半個(gè)月后腾供,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,646評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡鲜滩,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,709評(píng)論 3 342
  • 正文 我和宋清朗相戀三年伴鳖,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片徙硅。...
    茶點(diǎn)故事閱讀 40,861評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡榜聂,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出嗓蘑,到底是詐尸還是另有隱情须肆,我是刑警寧澤,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布桩皿,位于F島的核電站豌汇,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏泄隔。R本人自食惡果不足惜拒贱,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,196評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望梅尤。 院中可真熱鬧柜思,春花似錦、人聲如沸巷燥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)缰揪。三九已至陨享,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間钝腺,已是汗流浹背抛姑。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留艳狐,地道東北人定硝。 一個(gè)月前我還...
    沈念sama閱讀 49,287評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像毫目,于是被迫代替她去往敵國(guó)和親蔬啡。 傳聞我的和親對(duì)象是個(gè)殘疾皇子诲侮,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,860評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • 原文:https://github.com/electron/electron/blob/master/docs/...
    Shmily落墨閱讀 19,038評(píng)論 1 5
  • 原文:https://github.com/electron/electron/blob/master/docs/...
    Shmily落墨閱讀 6,139評(píng)論 0 1
  • 原文:https://github.com/electron/electron/blob/master/docs/...
    Shmily落墨閱讀 2,652評(píng)論 0 1
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)箱蟆,斷路器沟绪,智...
    卡卡羅2017閱讀 134,716評(píng)論 18 139
  • 你是山野吹來(lái)的風(fēng) 帶著泥土的氣息 滿含鮮花的香氣 你是山野吹來(lái)的風(fēng) 拂過(guò)連綿的山頭 來(lái)自高聳的叢林之中 你是山野吹...
    弓文銳閱讀 601評(píng)論 0 8