electron 的中文文檔的地址 以及 窗口改變的步驟

electron的中文文檔的地址:html

http://www.kancloud.cn/wizardforcel/electron-doc/137791

1.如何建立窗口和改變窗口:前端

import { BrowserWindow, globalShortcut, Menu } from 'electron'
import Common from '../common/common.js'

const winURL = process.env.NODE_ENV === 'development'
    ? `http://localhost:${require('../../../../config').port}`
    : `file://${__dirname}/index.html`

function createWindow() {
    var mainWindow = new BrowserWindow({
        height: Common.WINDOW_SIZE_LOGIN.height,
        width: Common.WINDOW_SIZE_LOGIN.width,
        resizable: false,
        frame: false,
    });
    mainWindow.loadURL(winURL);
    mainWindow.on('closed', () => {
        mainWindow = null
    });
    //前期爲了調試方面,默認打開控制檯
    mainWindow.webContents.openDevTools({ detach: true });
    //註冊打開控制檯的快捷鍵
    globalShortcut.register('ctrl+shift+alt+e', function () {
        let win = BrowserWindow.getFocusedWindow();
        if (win) {
            win.webContents.openDevTools({ detach: true });
        }
    });
    //去掉默認菜單欄
    Menu.setApplicationMenu(null);
    // eslint-disable-next-line no-console
    console.log('mainWindow opened');
   //添加這段代碼
    BrowserWindow.mainWindow = mainWindow;
    return mainWindow;
}

module.exports = {
    createWindow
};

如何把electron的按鈕的最大化,最小化 關閉窗口改變;web

/**
 * Created by Administrator on 2017/4/26.
 * 頁面對窗口的一些操做封裝,用於渲染進程
 */
"use strict";

const Common = require('../common/common.js');
const { ipcRenderer, remote } = require('electron');
const RUN_LOCATION = '\\Software\\Microsoft\\Windows\\CurrentVersion\\Run';
//const file = process.execPath;
//const WinReg = require('winreg');
let flashTrayTimer = null;

class WindowUtil {
    // 窗口最小化
    static minWindow() {
        remote.getCurrentWindow().minimize();
    }
    // 窗口最大化
    static maxWindow(isMaxed) {
        const browserWindow = remote.getCurrentWindow();
        if (!isMaxed) {
            browserWindow.unmaximize();
        } else {
            browserWindow.maximize();
        }
    }
    // 設置窗口是否能改變大小,參數true/false
    static setResizable(resizable) {
        remote.getCurrentWindow().setResizable(resizable);
    }
    // 下載文件
    static download(url) {
        remote.getCurrentWebContents().downloadURL(url);
    }

    // 隱藏窗口
    static hide() {
        const browserWindow = remote.getCurrentWindow();
        browserWindow.hide();
    }

    // 顯示窗口
    static show() {
        const browserWindow = remote.getCurrentWindow();
        browserWindow.show();
    }
    // 窗口閃爍
    static flashFrame() {
        const browserWindow = remote.getCurrentWindow();
        //   if(browserWindow.isFocused() || browserWindow.isVisible())
        if (!browserWindow.isFocused()) {
            browserWindow.showInactive();
            browserWindow.flashFrame(true);
        }
    }
    // 設置窗口最前端顯示
    static setAlwaysOnTop(top) {
        const browserWindow = remote.getCurrentWindow();
        browserWindow.setAlwaysOnTop(top);
    }

    // 設置開機啓動
    static enableAutoStart(callback) {
        let key = new WinReg({ hive: WinReg.HKCU, key: RUN_LOCATION });
        key.set('EUC', WinReg.REG_SZ, file, (err) => {
            console.log('設置自動啓動' + err);
            callback(err);
        });
    }
    // 取消開機啓動
    static disableAutoStart(callback) {
        let key = new WinReg({ hive: WinReg.HKCU, key: RUN_LOCATION });
        key.remove('EUC', (err) => {
            console.log('取消自動啓動' + err);
            callback(err);
        });
    }
    // 獲取是否開機啓動
    static getAutoStartValue(callback) {
        let key = new WinReg({ hive: WinReg.HKCU, key: RUN_LOCATION });
        key.get('EUC', function (error, result) {
            console.log("查詢自動啓動:" + JSON.stringify(result));
            console.log("file:" + file);
            if (result) {
                callback(true);
            }
            else {
                callback(false);
            }
        });
    }

    /**
     * 托盤圖標閃爍
     * @param flash true:閃爍;false:中止
     */
    static flashTray(flash) {
        let hasIcon = false;
        const tayIcon = './imgs/logo.ico';
        const tayIcon1 = './imgs/empty.png';
        if (flash) {
            if (flashTrayTimer) {
                return;
            }
            flashTrayTimer = window.setInterval(() => {
                ipcRenderer.send('ChangeTrayIcon', hasIcon ? tayIcon : tayIcon1);
                hasIcon = !hasIcon;
            }, 500);
        } else {
            if (flashTrayTimer) {
                window.clearInterval(flashTrayTimer);
                flashTrayTimer = null;
            }
            ipcRenderer.send('ChangeTrayIcon', tayIcon);
        }
    }

}
module.exports = WindowUtil;

三、窗口大小的改變;數組

 添加一句話:BrowserWindow.mainWindow = mainWindow;不知道有用沒有用


this.$router.push('/mainChat');//路由跳轉mainChat const remote = require('electron').remote; const BrowserWindow = remote.BrowserWindow; BrowserWindow.mainWindow.setSize(common.WINDOW_SIZE_MAINCIAT.width,common.WINDOW_SIZE_MAINCIAT.height); BrowserWindow.mainWindow.center() common.WINDOW_SIZE_MAINCIAT.width, 850 common.WINDOW_SIZE_MAINCIAT.height,600

 4.electron 的Api部分;electron

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

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

從新設置窗口的寬高值.
win.getSize()

返回一個數組,它包含了窗口的寬,高.
win.setContentSize(width, height[, animate])

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

從新設置窗口客戶端的寬高值(例如網頁界面).
win.getContentSize()

返回一個數組,它包含了窗口客戶端的寬,高.
win.setMinimumSize(width, height)

    width Integer
    height Integer

設置窗口最小化的寬高值.
win.getMinimumSize()

返回一個數組,它包含了窗口最小化的寬,高.
win.setMaximumSize(width, height)

    width Integer
    height Integer

設置窗口最大化的寬高值.
win.getMaximumSize()

返回一個數組,它包含了窗口最大化的寬,高.
win.setResizable(resizable)

    resizable Boolean

設置窗口是否能夠被用戶改變size.
win.isResizable()

返回 boolean,窗口是否能夠被用戶改變size.
win.setMovable(movable) OS X Windows

    movable Boolean

設置窗口是否能夠被用戶拖動. Linux 無效.
win.isMovable() OS X Windows

返回 boolean,窗口是否能夠被用戶拖動. Linux 老是返回 true.
win.setMinimizable(minimizable) OS X Windows

    minimizable Boolean

設置窗口是否能夠最小化. Linux 無效.
win.isMinimizable() OS X Windows

返回 boolean,窗口是否能夠最小化. Linux 老是返回 true.
win.setMaximizable(maximizable) OS X Windows

    maximizable Boolean

設置窗口是否能夠最大化. Linux 無效.
win.isMaximizable() OS X Windows

返回 boolean,窗口是否能夠最大化. Linux 老是返回 true.
win.setFullScreenable(fullscreenable)

    fullscreenable Boolean

設置點擊最大化按鈕是否能夠全屏或最大化窗口.
win.isFullScreenable()

返回 boolean,點擊最大化按鈕是否能夠全屏或最大化窗口.
win.setClosable(closable) OS X Windows

    closable Boolean

設置窗口是否能夠人爲關閉. Linux 無效.
win.isClosable() OS X Windows

返回 boolean,窗口是否能夠人爲關閉. Linux 老是返回 true.
win.setAlwaysOnTop(flag)

    flag Boolean

是否設置這個窗口始終在其餘窗口之上.設置以後,這個窗口仍然是一個普通的窗口,不是一個不能夠得到焦點的工具箱窗口.
win.isAlwaysOnTop()

返回 boolean,當前窗口是否始終在其它窗口以前.
win.center()

窗口居中.
win.setPosition(x, y[, animate])

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

移動窗口到對應的 x and y 座標.
win.getPosition()

返回一個包含當前窗口位置的數組.
win.setTitle(title)

    title String

改變原窗口的title.
win.getTitle()

返回原窗口的title.

注意: 界面title可能和窗口title不相同.
win.flashFrame(flag)

    flag Boolean

開始或中止顯示窗口來得到用戶的關注.
win.setSkipTaskbar(skip)
相關文章
相關標籤/搜索