当前位置:首页 > 科技  > 软件

基于Electron快速将任意网站打包成跨平台的桌面端软件

来源: 责编: 时间:2023-12-21 17:11:17 341观看
导读hi, 大家好, 我是徐小夕.之前有些用户和朋友希望我基于H5-Dooring开发一款桌面端应用, 最近刚好有时间, 就花了小半天时间使用electron开发了桌面端的软件Dooring-electron。当然这篇文章不会介绍如何从零使用 electr

eNx28资讯网——每日最新资讯28at.com

hi, 大家好, 我是徐小夕.eNx28资讯网——每日最新资讯28at.com

之前有些用户和朋友希望我基于H5-Dooring开发一款桌面端应用, 最近刚好有时间, 就花了小半天时间使用electron开发了桌面端的软件Dooring-electron。eNx28资讯网——每日最新资讯28at.com

eNx28资讯网——每日最新资讯28at.com

当然这篇文章不会介绍如何从零使用 electron , 而是会提供一种方案, 帮助大家快速的将线上网站转化为 electron 应用。eNx28资讯网——每日最新资讯28at.com

文章最后我也会分享一款我朋友开发的在线工具, 可以不写一行代码, 轻松把线上网站转化为桌面端软件。eNx28资讯网——每日最新资讯28at.com

electron的一些知识

熟悉Electron的朋友也许知道, Electron继承了来自 Chromium 的多进程架构,这使得Electron在架构上非常类似于一个现代的网页浏览器。我们可以控制两种类型的进程:主进程和渲染器。eNx28资讯网——每日最新资讯28at.com

每个 Electron 应用都有一个单一的主进程,作为应用程序入口。主进程在 Node 环境中运行,我们可以使用所有 Node 的能力。eNx28资讯网——每日最新资讯28at.com

那么主进程中我们可以做些什么呢? 主进程的主要目的是使用 BrowserWindow 模块创建和管理应用程序窗口。eNx28资讯网——每日最新资讯28at.com

BrowserWindow 类的每个实例创建一个应用程序窗口,且在单独的渲染器进程中加载一个网页。我们可从主进程用 window 的 webContent 对象与网页内容进行交互。eNx28资讯网——每日最新资讯28at.com

有了以上基础, 我画了一张dooring-electron 的简单架构图方便大家理解:eNx28资讯网——每日最新资讯28at.com

eNx28资讯网——每日最新资讯28at.com

想对electron有更多直观理解的, 也可以参考其官网:eNx28资讯网——每日最新资讯28at.com

https://www.electronjs.org/。eNx28资讯网——每日最新资讯28at.com

实现将线上网站打包成桌面端软件

我们知道如果想要加载第三方网络资源, 可以使用 mainWindow.loadURL(url) 来实现, 所以只需要将网址放到 loadURL 方法中让 electron 打开即可:eNx28资讯网——每日最新资讯28at.com

const mainWindow = new BrowserWindow({    maximizable: true,    show: false,    title: "H5-dooring网站制作平台",    fullscreen: false,    center: true,    webPreferences: {      preload: path.join(__dirname, 'preload.js'),      enableRemoteModule: true,      nodeIntegration: true,    },  });  mainWindow.maximize();  mainWindow.setAutoHideMenuBar(true);  mainWindow.loadURL('your website address');

同时如果想要控制网站打开新的页面时的窗口尺寸, 我们只需要对窗口进行监听, 来动态设置新窗口的尺寸即可:eNx28资讯网——每日最新资讯28at.com

mainWindow.webContents.setWindowOpenHandler((details) => {    const base = {      fullscreen: false,      skipTaskbar: true,      center: true,      maximizable: true,      autoHideMenuBar: false,//自动隐藏菜单栏      // icon: iconPath,// 窗口图标      parent: null ,//指定父窗口      resizable: true,      webPreferences: {//网页功能设置。        webSecurity: false,//禁用同源策略        nodeIntegration: true,        nodeIntegrationInWorker: true,        enableRemoteModule: true,        contextIsolation: false      },    }    const h5Win = {      width: 1200,      minWidth: 1200,      minHeight: 775,      height: 775,      y: 60,    }    const otherWin = {      width: 1200,      minWidth: 1200,      minHeight: 800,      height: 800,      y: 60,    }    if (details.url.indexOf('/preview') > -1) {   return {     action: 'allow',//允许新窗口被创建    overrideBrowserWindowOptions: {//允许自定义创建的窗口参数          ...base,     ...h5Win,    }   }  }    if (details.url.indexOf('/ide') > -1) {   return {     action: 'allow',//允许新窗口被创建    overrideBrowserWindowOptions: {//允许自定义创建的窗口参数          ...base,     ...otherWin,    }   }  }    if (details.url.indexOf('/h5_plus') > -1) {   return {     action: 'allow',//允许新窗口被创建    overrideBrowserWindowOptions: {//允许自定义创建的窗口参数          ...base,          width: 1500,          height: 860    }   }  }  return {       action: 'allow',//允许新窗口被创建      overrideBrowserWindowOptions: {//允许自定义创建的窗口参数        ...base,        ...otherWin,       }    } })

对于网站打包的配置 electron 文档上介绍的很详细, 这里我就不一一介绍了, 大家可以在 github 上参考学习:eNx28资讯网——每日最新资讯28at.com

  • https://github.com/MrXujiang/h5-dooring-electron-demo。

不用写一行代码, 轻松将你的网站打包成桌面端软件

eNx28资讯网——每日最新资讯28at.com

在线地址:https://webdesk.pigjs.com/builder。eNx28资讯网——每日最新资讯28at.com

我亲自体验了一下, 使用起来还是相当方便的, 不需要写一行代码就可以将网站转化的桌面端软件, 以下是一些功能优缺点介绍.eNx28资讯网——每日最新资讯28at.com

eNx28资讯网——每日最新资讯28at.com

Webdesk 功能及特点:

  • 快速转换:WebDesk可以在几分钟内将网页转换为桌面应用,无需编码或复杂的设置。
  • 多平台支持:可以将网页转化成 Window 桌面应用、macOs桌面应用。
  • 广泛的应用场景:无论是保存在线课程、工作文档还是个人网站,WebDesk都是将其转换为桌面应用的理想选择。

Webdesk 缺点:

  • 无代码签名:安装时可能因未签名而被系统提示存在安全隐患。
  • 体积过大:安装包体积约为 80MB,相对较大。
  • 内存占用高:运行时内存占用较高。
  • 无法离线使用:需要网络连接才能使用,不支持离线模式。

Webdesk 未来规划:

  • 代码签名:增加自动或自定义代码签名功能,提高安装安全性。
  • 应用平台上架:实现从构建到平台分发的完整流程。
  • 体积减小:优化安装包,减小体积,降低内存占用。
  • 离线使用:增加离线使用功能,无需网络即可使用。
  • 多语言支持:增加多语言支持。

本文链接:http://www.28at.com/showinfo-26-51238-0.html基于Electron快速将任意网站打包成跨平台的桌面端软件

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 如何设计更优雅的 React 组件?

下一篇: 研发提效必备技能:25张图手把手教你基于Docker搭建Maven私服仓库

标签:
  • 热门焦点
  • K60至尊版狂暴引擎2.0加持:超177万跑分斩获性能第一

    Redmi的后性能时代战略发布会今天下午如期举办,在本次发布会上,Redmi公布了多项关于和联发科的深度合作,以及新机K60 Ultra在软件和硬件方面的特性,例如:“K60 至尊版,双芯旗舰
  • Redmi Pad评测:红米充满野心的一次尝试

    从Note系列到K系列,从蓝牙耳机到笔记本电脑,红米不知不觉之间也已经形成了自己颇有竞争力的产品体系,在中端和次旗舰市场上甚至要比小米新机的表现来得更好,正所谓“大丈夫生居
  • 0糖0卡0脂 旭日森林仙草乌龙茶优惠:15瓶到手29元

    旭日森林无糖仙草乌龙茶510ml*15瓶平时要卖为79.9元,今日下单领取50元优惠券,到手价为29.9元。产品规格:0糖0卡0脂,添加草本仙草汁,清凉爽口,富含茶多酚,保留
  • 如何通过Python线程池实现异步编程?

    线程池的概念和基本原理线程池是一种并发处理机制,它可以在程序启动时创建一组线程,并将它们置于等待任务的状态。当任务到达时,线程池中的某个线程会被唤醒并执行任务,执行完任
  • JavaScript学习 -AES加密算法

    引言在当今数字化时代,前端应用程序扮演着重要角色,用户的敏感数据经常在前端进行加密和解密操作。然而,这样的操作在网络传输和存储中可能会受到恶意攻击的威胁。为了确保数据
  • .NET 程序的 GDI 句柄泄露的再反思

    一、背景1. 讲故事上个月我写过一篇 如何洞察 C# 程序的 GDI 句柄泄露 文章,当时用的是 GDIView + WinDbg 把问题搞定,前者用来定位泄露资源,后者用来定位泄露代码,后面有朋友反
  • 新电商三兄弟,“抖快红”成团!

    来源:价值研究所作 者:Hernanderz 随着内容电商的概念兴起,抖音、快手、小红书组成的“新电商三兄弟”成为业内一股不可忽视的势力,给阿里、京东、拼多多带去了巨大压
  • 三星电子Q2营收60万亿韩元 存储业务营收同比仍下滑超过50%

    7月27日消息,据外媒报道,从三星电子所发布的财报来看,他们主要利润来源的存储芯片业务在今年二季度仍不乐观,营收同比仍在大幅下滑,所在的设备解决方案
  • 3699元!iQOO Neo8 Pro顶配版今日首销:1TB UFS 4.0同价位唯一

    5月23日,iQOO推出了全新的iQOO Neo8系列,包含iQOO Neo8和iQOO Neo8 Pro两个版本,其中标准版搭载高通骁龙8+,而Pro版更是首发搭载了联发科天玑9200+旗舰
Top