Electron-vue客戶端開發(fā)總結

最近做了Electron-vue相關的客戶端開發(fā)

做出了如下總結:

利用new BrowserWindow()方法創(chuàng)建窗口對象

能滿足開發(fā)項目的窗口屬性有

win = new BrowserWindow({
    width: 700,
    height: 600,
    minWidth:1000,
    minHeight:600,
    // 文檔https://www.w3cschool.cn/electronmanual/electronmanual-browser-window.html
    webPreferences: {
        nodeIntegration: true,
        webviewTag: true,
        webSecurity: false,
        allowDisplayingInsecureContent: true,
        allowRunningInsecureContent: true,
    },
})

如果想把客戶端窗口頂部菜單去掉

在webPreferences同級節(jié)點加上

frame: false,// 去除頂部操作按鈕
微信截圖_20200927215509.png

自定義最小化征冷、最大化止吁、關閉窗口按鈕功能實現(xiàn):

在主進程中寫入以下代碼段

// 控制窗口大小以及關閉
ipcMain.on('close', () => {
    win.destroy();
})
// 窗口最小化
ipcMain.on('toMinimize', () => {
    win.minimize();})
// 窗口最大化和還原
ipcMain.on('toMaximize', () => {
    if (win.isMaximized()) {
        win.unmaximize();
    } else {
        win.maximize();
    }
})

如果想拖拽窗口利用如下方法:

首先在vue的main.js中引入electron的ipcRenderer

Vue.prototype.$electron = window.require('electron').ipcRenderer

設置公用vue組件為窗口頂部赂毯,id為web-top

在mounted中寫入

let _this = this;
dragElement(document.getElementById(("web-top")));
function dragElement(elmnt) {
    let [pos1,pos2,pos3,pos4] = [0,0,0,0];
    if (document.getElementById(elmnt.id + "header")) {
        document.getElementById(elmnt.id + "header").onmousedown = dragMouseDown;
    } else {
        elmnt.onmousedown = dragMouseDown;  }   function dragMouseDown(e) {
        e = e || window.event;
        pos3 = e.clientX;       pos4 = e.clientY;       document.onmouseup = closeDragElement;
        document.onmousemove = elementDrag;
    }   function elementDrag(e) {
        e = e || window.event;
        // e.movementX、e.movementY分別為窗口移動的方位和像素衰粹,為正負數(shù)值
        var param = e.movementX + "," + e.movementY;
        _this.$electron.send('changeWinPosition',param);
    }
    function closeDragElement() {
        document.onmouseup = null;
        document.onmousemove = null;
    }
}

在主進程中寫入

// 拖拽調整窗口位置
ipcMain.on('changeWinPosition', (event, arg) => {
    let [x,y] =[0,0];
    x = arg.split(",")[0];
    y = arg.split(",")[1];
    win.setBounds({ x: win.getPosition()[0] + parseInt(x), y: win.getPosition()[1] + parseInt(y) })
})
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子肴熏,更是在濱河造成了極大的恐慌,老刑警劉巖硝皂,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件常挚,死亡現(xiàn)場離奇詭異,居然都是意外死亡稽物,警方通過查閱死者的電腦和手機奄毡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來贝或,“玉大人吼过,你說我怎么就攤上這事∵浣保” “怎么了盗忱?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長羊赵。 經(jīng)常有香客問我趟佃,道長,這世上最難降的妖魔是什么慷垮? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任揖闸,我火速辦了婚禮,結果婚禮上料身,老公的妹妹穿的比我還像新娘汤纸。我一直安慰自己,他們只是感情好芹血,可當我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布贮泞。 她就那樣靜靜地躺著,像睡著了一般幔烛。 火紅的嫁衣襯著肌膚如雪啃擦。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天饿悬,我揣著相機與錄音令蛉,去河邊找鬼。 笑死狡恬,一個胖子當著我的面吹牛珠叔,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播弟劲,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼祷安,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了兔乞?” 一聲冷哼從身側響起汇鞭,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤凉唐,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后霍骄,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體台囱,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年腕巡,在試婚紗的時候發(fā)現(xiàn)自己被綠了玄坦。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡绘沉,死狀恐怖煎楣,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情车伞,我是刑警寧澤择懂,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站另玖,受9級特大地震影響困曙,放射性物質發(fā)生泄漏。R本人自食惡果不足惜谦去,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一慷丽、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧鳄哭,春花似錦要糊、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至勺拣,卻和暖如春奶赠,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背药有。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工毅戈, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人愤惰。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓苇经,卻偏偏與公主長得像,于是被迫代替她去往敵國和親羊苟。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,689評論 2 354