用Electron将web网页程序包装成桌面应用

用Electron将web网页程序包装成桌面应用

前提

  • web 端页面,真的太容易一不小心关掉了,或者,标签页比较多的时候不太容易找到,所以决定快速包装一个

认识electron

搭建electron项目

  1. 第一步 创建项目,下载依赖

mkdir my-electron-app && cd my-electron-app
npm init
npm install --save-dev electron (devDependencies:只在开发环境中使用的依赖,最后不会被打包到项目中)

  • init初始化命令会提示您在项目初始化配置中设置一些值
    {
      "name": "my-electron-app",
      "version": "1.0.0",
      "description": "Hello World!",
      "main": "main.js",
      "author": "Jane Doe",
      "license": "MIT"
    }
    
  1. 编写文件
  • 需要我们编写两个文件
  • index.html
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <meta http-equiv="Content-Security-Policy" content="default-src 'none'">
    <title>Hello World!</title>
  </head>
  <body>
    <h1>Hello World!</h1>
    We are using Node.js <span id="node-version"></span>,
    Chromium <span id="chrome-version"></span>,
    and Electron <span id="electron-version"></span>.
  </body>
</html>
  • main.js
// 在文件头部引入 Node.js 中的 path 模块
const path = require('path')
// app 它控制应用程序的事件生命周期。
// BrowserWindow 模块,它创建和管理应用程序 窗口。
const { app, BrowserWindow } = require('electron');

// 创建浏览器窗口
function createWindow () {
    //__dirname 字符串指向当前正在执行脚本的路径 (在本例中,它指向你的项目的根文件夹)
    const mainWindow = new BrowserWindow({
        width: 1000,
        height: 800,
      })
      // 本地文件
      //mainWindow.loadFile('index.html')
      // 线上页面
      mainWindow.loadURL('https://www.baidu.com/')
      // 打开控制台
      mainWindow.webContents.openDevTools()

};

// 除了 macOS 外,当所有窗口都被关闭的时候退出程序。 因此,通常对程序和它们在
// 任务栏上的图标来说,应当保持活跃状态,直到用户使用 Cmd + Q 退出。
app.on('window-all-closed', function () {
	if (process.platform !== 'darwin') app.quit()
})

// 部分 API 在 ready 事件触发后才能使用。
// 在 Electron 中,只有在 app 模块的 ready 事件被激发后才能创建浏览器窗口
app.whenReady().then(() => {
    createWindow()
    app.on('activate', function () {
      // 通常在 macOS 上,当点击 dock 中的应用程序图标时,如果没有其他打开的窗口,那么程序会重新创建一个窗口。
      if (BrowserWindow.getAllWindows().length === 0) createWindow()
    })
})
  1. 打包
  • 采用electron-builder打包
  • 配置打包信息(package.json)
  "build": {
    "appId": "com.baidu.app",//包名  
    "productName": "baidu",//项目名 这也是生成的exe文件的前缀名
    "dmg": {
      "icon": "public/icon/icons.icns"
    },
    "win": {
      "icon": "public/icon/icons.ico"
    }
  },

效果图

  • 浏览器
    在这里插入图片描述
  • 桌面应用
    在这里插入图片描述
  • 6
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
Electron是一个允许使用Web技术(HTML,CSS,JavaScript)构建跨平台桌面应用程序的框架。下面是一个简单的Electron桌面应用程序的示例: 1. 安装Node.js和npm 在开始之前,需要先安装Node.js和npm。如果您已经安装了,请跳过此步骤。 2. 初始化项目 使用npm初始化一个新的Electron项目: ``` npm init ``` 3. 安装Electron 安装Electron: ``` npm install electron --save-dev ``` 4. 创建主进程文件 在项目根目录下创建一个名为main.js的文件,它将作为应用程序的主进程。以下是一个简单的示例代码: ``` const { app, BrowserWindow } = require('electron') function createWindow () { const win = new BrowserWindow({ width: 800, height: 600, webPreferences: { nodeIntegration: true } }) win.loadFile('index.html') } app.whenReady().then(() => { createWindow() app.on('activate', () => { if (BrowserWindow.getAllWindows().length === 0) { createWindow() } }) }) app.on('window-all-closed', () => { if (process.platform !== 'darwin') { app.quit() } }) ``` 5. 创建渲染进程文件 在项目根目录下创建一个名为index.html的文件,它将作为应用程序的渲染进程。以下是一个简单的示例代码: ``` <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Hello World!</title> </head> <body> <h1>Hello World!</h1> </body> </html> ``` 6. 运行应用程序 运行应用程序: ``` npm start ``` 这将启动Electron应用程序。您将看到一个窗口,其中包含一个标题为“Hello World!”的文本。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值