Electron BrowserWindow 模塊

2020-09-23 11:31 更新

BrowserWindow 類(lèi)讓你有創(chuàng)建一個(gè)瀏覽器窗口的權(quán)力。例如:

// In the main process.
const BrowserWindow = require('electron').BrowserWindow;

// Or in the renderer process.
const BrowserWindow = require('electron').remote.BrowserWindow;

var win = new BrowserWindow({ width: 800, height: 600, show: false });
win.on('closed', function() {
  win = null;
});

win.loadURL('https://github.com');
win.show();

你也可以不通過(guò)chrome創(chuàng)建窗口,使用 Frameless Window API.

Class: BrowserWindow

BrowserWindow 是一個(gè) EventEmitter.

通過(guò) options 可以創(chuàng)建一個(gè)具有本質(zhì)屬性的 BrowserWindow 。

new BrowserWindow([options])

  • options Object
    • width Integer - 窗口寬度,單位像素. 默認(rèn)是 800。
    • height Integer - 窗口高度,單位像素. 默認(rèn)是 600。
    • x Integer - 窗口相對(duì)于屏幕的左偏移位置.默認(rèn)居中。
    • y Integer - 窗口相對(duì)于屏幕的頂部偏移位置.默認(rèn)居中。
    • useContentSize Boolean - width 和 height 使用web網(wǎng)頁(yè)size, 這意味著實(shí)際窗口的size應(yīng)該包括窗口框架的size,稍微會(huì)大一點(diǎn),默認(rèn)為 false。
    • center Boolean - 窗口屏幕居中。
    • minWidth Integer - 窗口最小寬度,默認(rèn)為 0。
    • minHeight Integer - 窗口最小高度,默認(rèn)為 0。
    • maxWidth Integer - 窗口最大寬度,默認(rèn)無(wú)限制。
    • maxHeight Integer - 窗口最大高度,默認(rèn)無(wú)限制。
    • resizable Boolean - 是否可以改變窗口size,默認(rèn)為 true。
    • movable Boolean - 窗口是否可以拖動(dòng). 在 Linux 上無(wú)效. 默認(rèn)為 true。
    • minimizable Boolean - 窗口是否可以最小化. 在 Linux 上無(wú)效. 默認(rèn)為 true。
    • maximizable Boolean - 窗口是否可以最大化. 在 Linux 上無(wú)效. 默認(rèn)為 true。
    • closable Boolean - 窗口是否可以關(guān)閉. 在 Linux 上無(wú)效. 默認(rèn)為 true。
    • alwaysOnTop Boolean - 窗口是否總是顯示在其他窗口之前. 在 Linux 上無(wú)效. 默認(rèn)為 false。
    • fullscreen Boolean - 窗口是否可以全屏幕. 當(dāng)明確設(shè)置值為When false ,全屏化按鈕將會(huì)隱藏,在 OS X 將禁用. 默認(rèn) false。
    • fullscreenable Boolean - 在 OS X 上,全屏化按鈕是否可用,默認(rèn)為 true。
    • skipTaskbar Boolean - 是否在任務(wù)欄中顯示窗口. 默認(rèn)是false。
    • kiosk Boolean - kiosk 方式. 默認(rèn)為 false。
    • title String - 窗口默認(rèn)title. 默認(rèn) "Electron"。
    • icon NativeImage - 窗口圖標(biāo), 如果不設(shè)置,窗口將使用可用的默認(rèn)圖標(biāo)。
    • show Boolean - 窗口創(chuàng)建的時(shí)候是否顯示. 默認(rèn)為 true。
    • frame Boolean - 指定 false 來(lái)創(chuàng)建一個(gè) Frameless Window. 默認(rèn)為 true。
    • acceptFirstMouse Boolean - 是否允許單擊web view來(lái)激活窗口。默認(rèn)為 false。
    • disableAutoHideCursor Boolean - 當(dāng) typing 時(shí)是否隱藏鼠標(biāo).默認(rèn) false。
    • autoHideMenuBar Boolean - 除非點(diǎn)擊 Alt,否則隱藏菜單欄.默認(rèn)為 false。
    • enableLargerThanScreen Boolean - 是否允許允許改變窗口大小大于屏幕. 默認(rèn)是 false。
    • backgroundColor String -窗口的 background color 值為十六進(jìn)制,如 #66CD00 或 #FFF 或 #80FFFFFF (支持透明度)。默認(rèn)為在 Linux 和 Windows 上為 #000 (黑色),Mac上為 #FFF(或透明)。
    • hasShadow Boolean - 窗口是否有陰影。只在 OS X 上有效. 默認(rèn)為 true。
    • darkTheme Boolean - 為窗口使用 dark 主題,只在一些擁有 GTK+3 桌面環(huán)境上有效. 默認(rèn)為 false。
    • transparent Boolean - 窗口透明。默認(rèn)為 false。
    • type String - 窗口type,默認(rèn)普通窗口,下面查看更多。
    • titleBarStyle String - 窗口標(biāo)題欄樣式,下面查看更多。
    • webPreferences Object - 設(shè)置界面特性,下面查看更多。

type 的值和效果不同平臺(tái)展示效果不同,具體:

  • Linux,可用值為 desktop, dock, toolbar, splash, notification。
  • OS X,可用值為 desktop, textured。
    • textured type 添加金屬梯度效果 (NSTexturedBackgroundWindowMask)。
    • desktop 設(shè)置窗口在桌面背景窗口水平 (kCGDesktopWindowLevel - 1)。注意桌面窗口不可聚焦,不可不支持鍵盤(pán)和鼠標(biāo)事件,但是可以使用 globalShortcut 來(lái)解決輸入問(wèn)題。

titleBarStyle 只在 OS X 10.10 Yosemite 或更新版本上支持,可用值:

  • default 以及無(wú)值, 顯示在 Mac 標(biāo)題欄上為不透明的標(biāo)準(zhǔn)灰色。
  • hidden 隱藏標(biāo)題欄,內(nèi)容充滿整個(gè)窗口, 然后它依然在左上角,仍然受標(biāo)準(zhǔn)窗口控制。
  • hidden-inset主體隱藏,顯示小的控制按鈕在窗口邊緣。

webPreferences 參數(shù)是個(gè)對(duì)象,它的屬性:

  • nodeIntegration Boolean - 是否完整支持node。默認(rèn)為 true。
  • preload String - 界面的其它腳本運(yùn)行之前預(yù)先加載一個(gè)指定腳本。這個(gè)腳本將一直可以使用 node APIs 無(wú)論 node integration 是否開(kāi)啟。腳本路徑為絕對(duì)路徑。當(dāng) node integration 關(guān)閉,預(yù)加載的腳本將從全局范圍重新引入node的全局引用標(biāo)志。查看例子 here。
  • session Session - 設(shè)置界面session。而不是直接忽略session對(duì)象,也可用 partition 來(lái)代替,它接受一個(gè) partition 字符串。當(dāng)同時(shí)使用 session 和 partition, session 優(yōu)先級(jí)更高. 默認(rèn)使用默認(rèn) session。
  • partition String - 通過(guò)session的partition字符串來(lái)設(shè)置界面session. 如果 partition 以 persist:開(kāi)頭, 這個(gè)界面將會(huì)為所有界面使用相同的 partition. 如果沒(méi)有 persist: 前綴, 界面使用歷史session. 通過(guò)分享同一個(gè) partition,所有界面使用相同的session. 默認(rèn)使用默認(rèn) session.
  • zoomFactor Number - 界面默認(rèn)縮放值,3.0 表示 300%. 默認(rèn) 1.0.
  • javascript Boolean - 開(kāi)啟javascript支持. 默認(rèn)為true.
  • webSecurity Boolean - 當(dāng)設(shè)置為 false,它將禁用相同地方的規(guī)則 (通常測(cè)試服), 并且如果有2個(gè)非用戶(hù)設(shè)置的參數(shù),就設(shè)置 allowDisplayingInsecureContent 和 allowRunningInsecureContent 的值為true. 默認(rèn)為 true.
  • allowDisplayingInsecureContent Boolean -允許一個(gè)使用 https的界面來(lái)展示由 http URLs 傳過(guò)來(lái)的資源. 默認(rèn)false.
  • allowRunningInsecureContent Boolean - Boolean -允許一個(gè)使用 https的界面來(lái)渲染由 http URLs 提交的html,css,javascript. 默認(rèn)為 false。
  • images Boolean - 開(kāi)啟圖片使用支持. 默認(rèn) true.
  • textAreasAreResizable Boolean - textArea 可以編輯. 默認(rèn)為 true.
  • webgl Boolean - 開(kāi)啟 WebGL 支持. 默認(rèn)為 true.
  • webaudio Boolean - 開(kāi)啟 WebAudio 支持. 默認(rèn)為 true.
  • plugins Boolean - 是否開(kāi)啟插件支持. 默認(rèn)為 false.
  • experimentalFeatures Boolean - 開(kāi)啟 Chromium 的 可測(cè)試 特性. 默認(rèn)為 false.
  • experimentalCanvasFeatures Boolean - 開(kāi)啟 Chromium 的 canvas 可測(cè)試特性. 默認(rèn)為 false.
  • directWrite Boolean - 開(kāi)啟窗口的 DirectWrite font 渲染系統(tǒng). 默認(rèn)為 true.
  • blinkFeatures String - 以 , 分隔的特性列表, 如 CSSVariables,KeyboardEventKey. 被支持的所有特性可在 setFeatureEnabledFromString 中找到.
  • defaultFontFamily Object - 設(shè)置 font-family 默認(rèn)字體.
    • standard String - 默認(rèn)為 Times New Roman.
    • serif String - 默認(rèn)為 Times New Roman.
    • sansSerif String - 默認(rèn)為 Arial.
    • monospace String - 默認(rèn)為 Courier New.
  • defaultFontSize Integer - 默認(rèn)為 16.
  • defaultMonospaceFontSize Integer - 默認(rèn)為 13.
  • minimumFontSize Integer - 默認(rèn)為 0.
  • defaultEncoding String - 默認(rèn)為 ISO-8859-1.

事件

BrowserWindow 對(duì)象可觸發(fā)下列事件:

注意: 一些事件只能在特定os環(huán)境中觸發(fā),已經(jīng)盡可能地標(biāo)出.

Event: 'page-title-updated'

返回:

  • event Event

當(dāng)文檔改變標(biāo)題時(shí)觸發(fā),使用 event.preventDefault() 可以阻止原窗口的標(biāo)題改變.

Event: 'close'

返回:

  • event Event

在窗口要關(guān)閉的時(shí)候觸發(fā). 它在DOM的 beforeunload and unload 事件之前觸發(fā).使用 event.preventDefault() 可以取消這個(gè)操作

通常你想通過(guò) beforeunload 處理器來(lái)決定是否關(guān)閉窗口,但是它也會(huì)在窗口重載的時(shí)候被觸發(fā)。在 Electron 中,返回一個(gè)空的字符串或 false 可以取消關(guān)閉.例如:

window.onbeforeunload = function(e) {
  console.log('I do not want to be closed');

  // Unlike usual browsers, in which a string should be returned and the user is
  // prompted to confirm the page unload, Electron gives developers more options.
  // Returning empty string or false would prevent the unloading now.
  // You can also use the dialog API to let the user confirm closing the application.
  e.returnValue = false;
};

Event: 'closed'

當(dāng)窗口已經(jīng)關(guān)閉的時(shí)候觸發(fā).當(dāng)你接收到這個(gè)事件的時(shí)候,你應(yīng)當(dāng)刪除對(duì)已經(jīng)關(guān)閉的窗口的引用對(duì)象和避免再次使用它.

Event: 'unresponsive'

在界面卡死的時(shí)候觸發(fā)事件.

Event: 'responsive'

在界面恢復(fù)卡死的時(shí)候觸發(fā).

Event: 'blur'

在窗口失去焦點(diǎn)的時(shí)候觸發(fā).

Event: 'focus'

在窗口獲得焦點(diǎn)的時(shí)候觸發(fā).

Event: 'maximize'

在窗口最大化的時(shí)候觸發(fā).

Event: 'unmaximize'

在窗口退出最大化的時(shí)候觸發(fā).

Event: 'minimize'

在窗口最小化的時(shí)候觸發(fā).

Event: 'restore'

在窗口從最小化恢復(fù)的時(shí)候觸發(fā).

Event: 'resize'

在窗口size改變的時(shí)候觸發(fā).

Event: 'move'

在窗口移動(dòng)的時(shí)候觸發(fā).

注意:在 OS X 中別名為 moved.

Event: 'moved' OS X

在窗口移動(dòng)的時(shí)候觸發(fā).

Event: 'enter-full-screen'

在的窗口進(jìn)入全屏狀態(tài)時(shí)候觸發(fā).

Event: 'leave-full-screen'

在的窗口退出全屏狀態(tài)時(shí)候觸發(fā).

Event: 'enter-html-full-screen'

在的窗口通過(guò) html api 進(jìn)入全屏狀態(tài)時(shí)候觸發(fā).

Event: 'leave-html-full-screen'

在的窗口通過(guò) html api 退出全屏狀態(tài)時(shí)候觸發(fā).

Event: 'app-command' Windows

在請(qǐng)求一個(gè)App Command.aspx)的時(shí)候觸發(fā). 典型的是鍵盤(pán)媒體或?yàn)g覽器命令, Windows上的 "Back" 按鈕用作鼠標(biāo)也會(huì)觸發(fā).

someWindow.on('app-command', function(e, cmd) {
  // Navigate the window back when the user hits their mouse back button
  if (cmd === 'browser-backward' && someWindow.webContents.canGoBack()) {
    someWindow.webContents.goBack();
  }
});

Event: 'scroll-touch-begin' OS X

在滾動(dòng)條事件開(kāi)始的時(shí)候觸發(fā).

Event: 'scroll-touch-end' OS X

在滾動(dòng)條事件結(jié)束的時(shí)候觸發(fā).

方法

BrowserWindow 對(duì)象有如下方法:

BrowserWindow.getAllWindows()

返回一個(gè)所有已經(jīng)打開(kāi)了窗口的對(duì)象數(shù)組.

BrowserWindow.getFocusedWindow()

返回應(yīng)用當(dāng)前獲得焦點(diǎn)窗口,如果沒(méi)有就返回 null.

BrowserWindow.fromWebContents(webContents)

根據(jù) webContents 查找窗口.

BrowserWindow.fromId(id)

  • id Integer

根據(jù) id 查找窗口.

BrowserWindow.addDevToolsExtension(path)

  • path String

添加位于 path 的開(kāi)發(fā)者工具欄擴(kuò)展,并且返回?cái)U(kuò)展項(xiàng)的名字.

這個(gè)擴(kuò)展會(huì)被添加到歷史,所以只需要使用這個(gè)API一次,這個(gè)api不可用作編程使用.

BrowserWindow.removeDevToolsExtension(name)

  • name String

刪除開(kāi)發(fā)者工具欄名為 name 的擴(kuò)展.

實(shí)例屬性

使用 new BrowserWindow 創(chuàng)建的實(shí)例對(duì)象,有如下屬性:

// In this example `win` is our instance
var win = new BrowserWindow({ width: 800, height: 600 });

win.webContents

這個(gè)窗口的 WebContents 對(duì)象,所有與界面相關(guān)的事件和方法都通過(guò)它完成的.

查看 webContents documentation 的方法和事件.

win.id

窗口的唯一id.

實(shí)例方法

使用 new BrowserWindow 創(chuàng)建的實(shí)例對(duì)象,有如下方法:

注意: 一些方法只能在特定os環(huán)境中調(diào)用,已經(jīng)盡可能地標(biāo)出.

win.destroy()

強(qiáng)制關(guān)閉窗口, unload and beforeunload 不會(huì)觸發(fā),并且 close 也不會(huì)觸發(fā), 但是它保證了 closed 觸發(fā).

win.close()

嘗試關(guān)閉窗口,這與用戶(hù)點(diǎn)擊關(guān)閉按鈕的效果一樣. 雖然網(wǎng)頁(yè)可能會(huì)取消關(guān)閉,查看 close event.

win.focus()

窗口獲得焦點(diǎn).

win.isFocused()

返回 boolean, 窗口是否獲得焦點(diǎn).

win.show()

展示并且使窗口獲得焦點(diǎn).

win.showInactive()

展示窗口但是不獲得焦點(diǎn).

win.hide()

隱藏窗口.

win.isVisible()

返回 boolean, 窗口是否可見(jiàn).

win.maximize()

窗口最大化.

win.unmaximize()

取消窗口最大化.

win.isMaximized()

返回 boolean, 窗口是否最大化.

win.minimize()

窗口最小化. 在一些os中,它將在dock中顯示.

win.restore()

將最小化的窗口恢復(fù)為之前的狀態(tài).

win.isMinimized()

返回 boolean, 窗口是否最小化.

win.setFullScreen(flag)

  • flag Boolean

設(shè)置是否全屏.

win.isFullScreen()

返回 boolean, 窗口是否全屏化.

win.setAspectRatio(aspectRatio[, extraSize]) OS X

  • aspectRatio 維持部分視圖內(nèi)容窗口的高寬比值.
  • extraSize Object (可選) - 維持高寬比值時(shí)不包含的額外size.
    • width Integer
    • height Integer

由一個(gè)窗口來(lái)維持高寬比值. extraSize 允許開(kāi)發(fā)者使用它,它的單位為像素,不包含在 aspectRatio 中.這個(gè) API 可用來(lái)區(qū)分窗口的size和內(nèi)容的size .

想象一個(gè)普通可控的HD video 播放器窗口. 假如左邊緣有15控制像素,右邊緣有25控制像素,在播放器下面有50控制像素.為了在播放器內(nèi)保持一個(gè) 16:9 的高寬比例,我們可以調(diào)用這個(gè)api傳入?yún)?shù)16/9 and [ 40, 50 ].第二個(gè)參數(shù)不管網(wǎng)頁(yè)中的額外的寬度和高度在什么位置,只要它們存在就行.只需要把網(wǎng)頁(yè)中的所有額外的高度和寬度加起來(lái)就行.

win.setBounds(options[, animate])

  • options Object
    • x Integer
    • y Integer
    • width Integer
    • height Integer
  • animate Boolean (可選) OS X

重新設(shè)置窗口的寬高值,并且移動(dòng)到指定的 x, y 位置.

win.getBounds()

返回一個(gè)對(duì)象,它包含了窗口的寬,高,x坐標(biāo),y坐標(biāo).

win.setSize(width, height[, animate])

  • width Integer
  • height Integer
  • animate Boolean (可選) OS X

重新設(shè)置窗口的寬高值.

win.getSize()

返回一個(gè)數(shù)組,它包含了窗口的寬,高.

win.setContentSize(width, height[, animate])

  • width Integer
  • height Integer
  • animate Boolean (可選) OS X

重新設(shè)置窗口客戶(hù)端的寬高值(例如網(wǎng)頁(yè)界面).

win.getContentSize()

返回一個(gè)數(shù)組,它包含了窗口客戶(hù)端的寬,高.

win.setMinimumSize(width, height)

  • width Integer
  • height Integer

設(shè)置窗口最小化的寬高值.

win.getMinimumSize()

返回一個(gè)數(shù)組,它包含了窗口最小化的寬,高.

win.setMaximumSize(width, height)

  • width Integer
  • height Integer

設(shè)置窗口最大化的寬高值.

win.getMaximumSize()

返回一個(gè)數(shù)組,它包含了窗口最大化的寬,高.

win.setResizable(resizable)

  • resizable Boolean

設(shè)置窗口是否可以被用戶(hù)改變size.

win.isResizable()

返回 boolean,窗口是否可以被用戶(hù)改變size.

win.setMovable(movable) OS X Windows

  • movable Boolean

設(shè)置窗口是否可以被用戶(hù)拖動(dòng). Linux 無(wú)效.

win.isMovable() OS X Windows

返回 boolean,窗口是否可以被用戶(hù)拖動(dòng). Linux 總是返回 true.

win.setMinimizable(minimizable) OS X Windows

  • minimizable Boolean

設(shè)置窗口是否可以最小化. Linux 無(wú)效.

win.isMinimizable() OS X Windows

返回 boolean,窗口是否可以最小化. Linux 總是返回 true.

win.setMaximizable(maximizable) OS X Windows

  • maximizable Boolean

設(shè)置窗口是否可以最大化. Linux 無(wú)效.

win.isMaximizable() OS X Windows

返回 boolean,窗口是否可以最大化. Linux 總是返回 true.

win.setFullScreenable(fullscreenable)

  • fullscreenable Boolean

設(shè)置點(diǎn)擊最大化按鈕是否可以全屏或最大化窗口.

win.isFullScreenable()

返回 boolean,點(diǎn)擊最大化按鈕是否可以全屏或最大化窗口.

win.setClosable(closable) OS X Windows

  • closable Boolean

設(shè)置窗口是否可以人為關(guān)閉. Linux 無(wú)效.

win.isClosable() OS X Windows

返回 boolean,窗口是否可以人為關(guān)閉. Linux 總是返回 true.

win.setAlwaysOnTop(flag)

  • flag Boolean

是否設(shè)置這個(gè)窗口始終在其他窗口之上.設(shè)置之后,這個(gè)窗口仍然是一個(gè)普通的窗口,不是一個(gè)不可以獲得焦點(diǎn)的工具箱窗口.

win.isAlwaysOnTop()

返回 boolean,當(dāng)前窗口是否始終在其它窗口之前.

win.center()

窗口居中.

win.setPosition(x, y[, animate])

  • x Integer
  • y Integer
  • animate Boolean (可選) OS X

移動(dòng)窗口到對(duì)應(yīng)的 x and y 坐標(biāo).

win.getPosition()

返回一個(gè)包含當(dāng)前窗口位置的數(shù)組.

win.setTitle(title)

  • title String

改變?cè)翱诘膖itle.

win.getTitle()

返回原窗口的title.

注意: 界面title可能和窗口title不相同.

win.flashFrame(flag)

  • flag Boolean

開(kāi)始或停止顯示窗口來(lái)獲得用戶(hù)的關(guān)注.

win.setSkipTaskbar(skip)

  • skip Boolean

讓窗口不在任務(wù)欄中顯示.

win.setKiosk(flag)

  • flag Boolean

進(jìn)入或離開(kāi) kiosk 模式.

win.isKiosk()

返回 boolean,是否進(jìn)入或離開(kāi) kiosk 模式.

win.getNativeWindowHandle()

 Buffer 形式返回這個(gè)具體平臺(tái)的窗口的句柄.

windows上句柄類(lèi)型為 HWND ,OS X NSView* , Linux Window.

win.hookWindowMessage(message, callback) Windows

  • message Integer
  • callback Function

攔截windows 消息,在 WndProc 接收到消息時(shí)觸發(fā) callback函數(shù).

win.isWindowMessageHooked(message) Windows

  • message Integer

返回 true or false 來(lái)代表是否攔截到消息.

win.unhookWindowMessage(message) Windows

  • message Integer

不攔截窗口消息.

win.unhookAllWindowMessages() Windows

窗口消息全部不攔截.

win.setRepresentedFilename(filename) OS X

  • filename String

設(shè)置窗口當(dāng)前文件路徑,并且將這個(gè)文件的圖標(biāo)放在窗口標(biāo)題欄上.

win.getRepresentedFilename() OS X

獲取窗口當(dāng)前文件路徑.

win.setDocumentEdited(edited) OS X

  • edited Boolean

明確指出窗口文檔是否可以編輯,如果可以編輯則將標(biāo)題欄的圖標(biāo)變成灰色.

win.isDocumentEdited() OS X

返回 boolean,當(dāng)前窗口文檔是否可編輯.

win.focusOnWebView()

win.blurWebView()

win.capturePage([rect, ]callback)

  • rect Object (可選) - 捕獲Page位置
    • x Integer
    • y Integer
    • width Integer
    • height Integer
  • callback Function

捕獲 rect 中的page 的快照.完成后將調(diào)用回調(diào)函數(shù) callback 并返回 image . image 是存儲(chǔ)了快照信息的NativeImage實(shí)例.如果不設(shè)置 rect 則將捕獲所有可見(jiàn)page.

win.print([options])

類(lèi)似 webContents.print([options])

win.printToPDF(options, callback)

類(lèi)似 webContents.printToPDF(options, callback)

win.loadURL(url[, options])

類(lèi)似 webContents.loadURL(url[, options]).

win.reload()

類(lèi)似 webContents.reload.

win.setMenu(menu) Linux Windows

  • menu Menu

設(shè)置菜單欄的 menu ,設(shè)置它為 null 則表示不設(shè)置菜單欄.

win.setProgressBar(progress)

  • progress Double

在進(jìn)度條中設(shè)置進(jìn)度值,有效范圍 [0, 1.0].

當(dāng)進(jìn)度小于0時(shí)則不顯示進(jìn)度; 當(dāng)進(jìn)度大于0時(shí)顯示結(jié)果不確定.

在libux上,只支持Unity桌面環(huán)境,需要指明 *.desktop 文件并且在 package.json 中添加文件名字.默認(rèn)它為 app.getName().desktop.

win.setOverlayIcon(overlay, description) Windows 7+

  • overlay NativeImage - 在底部任務(wù)欄右邊顯示圖標(biāo).
  • description String - 描述.

向當(dāng)前任務(wù)欄添加一個(gè) 16 x 16 像素的圖標(biāo),通常用來(lái)覆蓋一些應(yīng)用的狀態(tài),或者直接來(lái)提示用戶(hù).

win.setHasShadow(hasShadow) OS X

  • hasShadow (Boolean)

設(shè)置窗口是否應(yīng)該有陰影.在Windows和Linux系統(tǒng)無(wú)效.

win.hasShadow() OS X

返回 boolean,設(shè)置窗口是否有陰影.在Windows和Linux系統(tǒng)始終返回 true.

win.setThumbarButtons(buttons) Windows 7+

  • buttons Array

在窗口的任務(wù)欄button布局出為縮略圖添加一個(gè)有特殊button的縮略圖工具欄. 返回一個(gè) Boolean 對(duì)象來(lái)指示是否成功添加這個(gè)縮略圖工具欄.

因?yàn)榭臻g有限,縮略圖工具欄上的 button 數(shù)量不應(yīng)該超過(guò)7個(gè).一旦設(shè)置了,由于平臺(tái)限制,就不能移動(dòng)它了.但是你可使用一個(gè)空數(shù)組來(lái)調(diào)用api來(lái)清除 buttons .

所有 buttons 是一個(gè) Button 對(duì)象數(shù)組:

  • Button Object
    • icon NativeImage - 在工具欄上顯示的圖標(biāo).
    • click Function
    • tooltip String (可選) - tooltip 文字.
    • flags Array (可選) - 控制button的狀態(tài)和行為. 默認(rèn)它是 ['enabled'].

flags 是一個(gè)數(shù)組,它包含下面這些 Strings:

  • enabled - button 為激活狀態(tài)并且開(kāi)放給用戶(hù).
  • disabled -button 不可用. 目前它有一個(gè)可見(jiàn)的狀態(tài)來(lái)表示它不會(huì)響應(yīng)你的行為.
  • dismissonclick - 點(diǎn)擊button,這個(gè)縮略窗口直接關(guān)閉.
  • nobackground - 不繪制邊框,僅僅使用圖像.
  • hidden - button 對(duì)用戶(hù)不可見(jiàn).
  • noninteractive - button 可用但是不可響應(yīng); 也不顯示按下的狀態(tài). 它的值意味著這是一個(gè)在通知單使用 button 的實(shí)例.

win.showDefinitionForSelection() OS X

在界面查找選中文字時(shí)顯示彈出字典.

win.setAutoHideMenuBar(hide)

  • hide Boolean

設(shè)置窗口的菜單欄是否可以自動(dòng)隱藏. 一旦設(shè)置了,只有當(dāng)用戶(hù)按下 Alt 鍵時(shí)則顯示.

如果菜單欄已經(jīng)可見(jiàn),調(diào)用 setAutoHideMenuBar(true) 則不會(huì)立刻隱藏.

win.isMenuBarAutoHide()

返回 boolean,窗口的菜單欄是否可以自動(dòng)隱藏.

win.setMenuBarVisibility(visible)

  • visible Boolean

設(shè)置菜單欄是否可見(jiàn).如果菜單欄自動(dòng)隱藏,用戶(hù)仍然可以按下 Alt 鍵來(lái)顯示.

win.isMenuBarVisible()

返回 boolean,菜單欄是否可見(jiàn).

win.setVisibleOnAllWorkspaces(visible)

  • visible Boolean

設(shè)置窗口是否在所有地方都可見(jiàn).

注意: 這個(gè)api 在windows無(wú)效.

win.isVisibleOnAllWorkspaces()

返回 boolean,窗口是否在所有地方都可見(jiàn).

注意: 在 windows上始終返回 false.

win.setIgnoreMouseEvents(ignore) OS X

  • ignore Boolean

忽略窗口的所有鼠標(biāo)事件.

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)