「桌面端」Electron 你不知道的 BrowserView

本文详细介绍了在 Electron 中使用 BrowserView 进行桌面应用开发的实践,包括容器封装、预加载管理、加载状态处理(Loading 和 Error 页面实现)、URL 作为跳转唯一索引等关键点,旨在解决性能和用户体验问题。
摘要由CSDN通过智能技术生成

概要

大终端开发,不仅啥都能做,还啥坑都能踩。

桌面端这个系列上文讲到:Electron BrowserView 实现多标签页效果,只是做了简单的 Demo 可行性验证,距离产品要求和技术沉淀还差了一大截。

通过本文,你将获得:

  • 容器封装。
  • 预加载管理。
  • 加载中 Loading 实现。
  • 加载失败 Error 实现。

不会获得:

  • 便捷的通信机制[手动狗头]

(这个会放在跨端通信终结者|看我是如何保证多端消息一致性的的补充篇中讲)

效果

不干讲,先看看最终实现的效果:

image.png

 

如果用以前WebView的实现方式还是比较简单的,但官方是明确不支持这样做了Electron Web 嵌入。

那选择上还有iframeBrowserView了,说实话,iframe实现上会简单很多,但没办法做到预加载,那整体效果上会变得差强人意。更重要的一点,由于历史遗留问题,项目中存在一套旧的通信机制,2套的机制不兼容(跨端篇再细讲),所以没办法用iframe

细节

言归正传,讲讲BrowserView是怎么实现的。

页签实现的逻辑跟前文大差不差,所以这里略过。

容器封装

封装容器做了哪些事?

我们希望无论是用BrowserWindow还是BrowserView渲染,都是一致的参数封装。

Typescript复制代码    /**
     * 唯一 ID
     */
    public readonly id: number;
    /**
     * 加载地址
     */
    private url?: string;
    
    ...

那除了一致的 UI、一致的 prelod 外,我们还希望有一致的逻辑处理

Electron和Flutter都是广泛用于开发桌面应用程序的工具,它们各自有着自己的优缺点。下面是它们的比较: ## Electron ### 优点: 1. 跨平台:Electron可以在不同的操作系统(Windows,macOS和Linux)上运行相同的代码,开发人员可以使用相同的技术栈来构建应用程序,这样可以节省时间和成本。 2. Web技术栈:Electron使用HTML,CSS和JavaScript作为其技术栈,这对于Web开发人员来说非常熟悉。这使得构建应用程序变得更加容易。 3. 社区支持:Electron是一个开源项目,拥有庞大的社区支持,这意味着开发人员可以获得丰富的文档,示例代码和第三方库。 ### 缺点: 1. 性能:由于Electron使用Web技术栈,它的性能可能会受到一定的影响。在某些情况下,这可能会导致应用程序运行速度变慢或消耗更多的系统资源。 2. 文件大小:Electron应用程序文件通常会比本机应用程序文件更大,这可能会导致一些用户对其不满意。 3. 学习曲线:虽然Electron使用Web技术栈,但它仍然需要一些桌面应用程序开发的特定知识。这意味着开发人员需要花费一些时间来学习这些知识。 ## Flutter ### 优点: 1. 性能:Flutter是一个本机应用程序开发框架,因此它可以提供更好的性能和更少的系统资源消耗。 2. 快速开发:Flutter使用了热重载技术,这使得开发人员可以快速地进行迭代和测试。 3. 界面美观:Flutter提供了美观的UI组件库和内置的动画效果,这使得开发人员可以轻松地创建漂亮的用户界面。 ### 缺点: 1. 学习曲线:虽然Flutter提供了许多美观的UI组件,但开发人员需要学习如何使用它们以及如何构建本机应用程序。这可能需要一些时间来掌握。 2. 可移植性:虽然Flutter可以用于多种平台(包括iOS,Android,Web和桌面),但某些功能可能仍不可用或存在平台限制。 3. 社区支持:虽然Flutter的社区正在迅速增长,但它仍然比Electron的社区小得多。这可能会导致在使用Flutter时缺少文档和示例代码等资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值