Electron桌面應用框架的使用,結合react項目

參考文章:https://blog.csdn.net/qq_25881261/article/details/81559794html

https://blog.csdn.net/easyClub_hanjixin/article/details/81178627react

 

1.打開react項目,安裝npm i electron --Sweb

2.在react項目根目錄建立main.js(與package.json同級)npm

const { app, BrowserWindow } = require('electron') const url = require('url') const path = require('path') let win function createWindow() { // 建立瀏覽器窗口。
    win = new BrowserWindow({ width: 800, height: 600 }) // 加載應用----react 打包 生產環境
 win.loadURL(url.format({ pathname: path.join(__dirname, './build/index.html'), protocol: 'file:', slashes: true })) // 而後加載應用的 index.html。 url 及本地文件形式 // win.loadURL('http://localhost:3000') // 開發環境 // win.loadFile('public/index.html') //若是想要讓electron加載本地打包好的React文件的build文件下的內容是這樣子的:(這個問題困擾我好久,解決了。分享下2019-4-29添加) // win.loadURL(`file://${path.join(__dirname, '../build/index.html')}`) // 打開開發者工具
 win.webContents.openDevTools() // 當 window 被關閉,這個事件會被觸發。
    win.on('closed', () => { // 取消引用 window 對象,若是你的應用支持多窗口的話, // 一般會把多個 window 對象存放在一個數組裏面, // 與此同時,你應該刪除相應的元素。
        win = null }) } // Electron 會在初始化後並準備 // 建立瀏覽器窗口時,調用這個函數。 // 部分 API 在 ready 事件觸發後才能使用。
app.on('ready', createWindow) // 當所有窗口關閉時退出。
app.on('window-all-closed', () => { // 在 macOS 上,除非用戶用 Cmd + Q 肯定地退出, // 不然絕大部分應用及其菜單欄會保持激活。
    if (process.platform !== 'darwin') { app.quit() } }) app.on('activate', () => { // 在macOS上,當單擊dock圖標而且沒有其餘窗口打開時, // 一般在應用程序中從新建立一個窗口。
    if (win === null) { createWindow() } }) // 在這個文件中,你能夠續寫應用剩下主進程代碼。 // 也能夠拆分紅幾個文件,而後用 require 導入。

 

3.在package.json中添加json

"scripts": {
  "electron-start": "electron .",
}

"main": "main.js",
"homepage":".",

4.啓動Electron

npm start :啓動react項目
npm run electron-start:啓動electron 
相關文章
相關標籤/搜索