记录一次使用 electron 套壳桌面端(一)

最近由于各种事情,好久都不曾写笔记,也逐渐淡忘了学习的心志,似乎在摆烂的路上渐行渐远,哎!就让我再摆一会吧~(* ̄︶ ̄)。

好了,废话不多说,开始正文!

桌面端,属于c端的开发,现在有 electron 前端也可以搞,开发大致可以分为两种:一是直接 vue + electron 开发(当然也可以是其他前端框架),还一种是直接利用类似 h5 中的 webview 方式,直接放入内嵌的网址。笔者这里由于已有网页端,对桌面端要求不是很高,于是采用第二种嵌入网页方案。

一、项目搭建

这里笔者使用官方提供的一个快速开始的项目模板
在这里插入图片描述

electron-quick-start地址
省去了搭建流程,项目拉下来,安装依赖,运行即可(安装过程中可能遇到很多问题,主要是electron的问题,网上也有很多解决方案,笔者试了很多,还是这个靠谱
// 设置下载地址
npm config set ELECTRON_MIRROR https://npm.taobao.org/mirrors/electron/ )

二、设置内嵌地址

首先是理解 BrowserWindowBrowserView

BrowserWindow
创建并控制浏览器窗口,electron 本身也是包一个浏览器的方式,实例化时可以传入一些参数,如:窗口大小、背景色、可见性等

BrowserView
BrowserView 被用来让 BrowserWindow 嵌入更多的 web 内容。 它就像一个子窗口,除了它的位置是相对于父窗口。 这意味着可以替代webview标签.。也就是说,这个类是用来放置 内嵌网页的。当然 BrowserWindow 也是可以的

个人理解:
BrowserWindow 就是创建一个浏览器窗口,BrowserView 则是可以放置更多的web内容,好比一个项目中要放置一些第三方网页,网页端的做法则是 webview、iframe,electron中则是提供了 BrowserView 来放置其 url

三、放置内嵌地址

/**
 * 创建 window 窗口
 * **/ 
function createWindow() {
    // Create the browser window.
    const mainWindow = new BrowserWindow({
        width: initWindowSize.width,  // 笔者是将 宽高 列为配置
        height: initWindowSize.height,
        show: false,
        title: 'XXXX',
        icon: 'XXXX',
    })
    // and load the index.html of the app.
    mainWindow.loadFile('index.html')
    // 是否显示顶部菜单
    mainWindow.setMenu(null)
    return mainWindow
}
/**
 * 创建 pc 窗口
 * **/ 
function loadPC(BrowserWindow) {
    
    const view = new BrowserView({
        webPreferences: {
            preload: path.join(__dirname, 'preload.js'), // 这个 js 后面讲
            devTools: true, // 调试面板
        },
    })
    BrowserWindow.setBrowserView(view)
    // 设置 网页初始大小
    view.setBounds({ x: 0, y: 0, width: initWindowSize.width, height: initWindowSize.height })
    // 宽高 自动变换
    view.setAutoResize({
        width: true,
        height: true
    })
    // 内嵌地址,可填本地地址
    view.webContents.loadURL('xxxxx')
    // 网页加载完毕 再显示窗口
    BrowserWindow.once('ready-to-show', function () {
        BrowserWindow.show()
        // 打开调试面板
        // view.webContents.openDevTools()
    })
    return view
}
app.whenReady().then(() => {
    let win = createWindow()
    // 加载 内嵌 网址
    loadPC(win)
}

四、最后

初步尝试,只是简单使用一些类,实现桌面端内嵌网址,但还有一些问题亟待解决,例如如何通信问题等,后续再更新!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用中介绍了使用electron-quick-start来搭建electron项目的简便方法。该方法省去了繁琐的搭建流程,只需要拉取项目并安装依赖,即可开始使用electron使用这种方法可能会遇到一些安装问题,特别是与electron相关的问题,但是网络上也有很多解决方案。另外,引用中提到了给web项目套上一个node环境的壳,这意味着可以使用electron来开发一个带有界面的爬虫工具。使用electron套壳的方式可以避免下载庞大的开发工具,比如使用C#。引用中还介绍了两种开发桌面应用的方法,一种是直接使用vue和electron进行开发,另一种是使用类似于H5中的webview方式将网页嵌入应用中。根据引用内容可以得知,electron套壳是指使用electron作为壳来包装web项目,使其具备桌面应用的能力。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [记录一次使用 electron 套壳桌面(一)](https://blog.csdn.net/qq_45219069/article/details/126690034)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [用Electron写个带界面的nodejs爬虫的实现方法](https://download.csdn.net/download/weixin_38744803/14007570)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值