• 作者:老汪软件技巧
  • 发表时间:2024-09-09 21:02
  • 浏览量:

熟悉我的粉丝们应该知道,我最近很少写文章了。我现在有些对技术本身去魅了,因为纯粹的技术并不足以让我们有更好的发展。事实也证明,我去年的年终总结对前端的判断是对的,虽然那篇被举报限流,但我依旧相信我的观点。

现在写文章并不是纯粹的为了写而写,而是发现了社区在某些内容上有一些缺陷,所以来补全缺憾。

文章地址:给大家一些建议,2024 要多路开花,前端已死(衰弱)不只是说说而已

前言为什么有了这个系列文章

最近有需求要使用 Electron ,我在中文互联网搜索 Electron 相关的文章,想拿来做参考,毕竟官方文档写的并不满足需求。

于是我的得到了这些:

然后我想,可能免费的不太行,去看看小册,花点儿也行。

于是我又收到了一份暴击:

于是我才开始这个系列文章,我对这个系列的最终目的是,写一个完整的 Electron 教程,最终会带大家写一个游戏的管理器,能使用 手柄 更舒适的打游戏。

代码全部开源、步骤完整可靠、前期以文章形式供大家观看,也算是对大家的小小福利 ~

最终大概会以小册的方式整理呈现给大家。

需求来源

最近玩儿游戏遇到一个很蛋疼的事儿,最近下载了很多游戏,我很喜欢躺在床上拿手柄玩儿。

但我每次想换个游戏玩儿,都需要下床拿起鼠标键盘,把游戏退了,在选择进入。手柄不可以操作选择游戏。我也在网上找了一些开源的东西,但总是感觉用起来不够舒服。

所以我便动了自己写一个的心思,最终实现效果应该跟 PS5 差不多,直接可以将电脑接在电视上或者大屏,自己坐在远一点的位置玩儿游戏。

最核心的功能如下:

为什么用 Electron

我选择框架,一直有一个理念:如无必要、勿增实体 。

对市面上很多的软件进行观察,大家会发现,很多 APP 完全可以只需要浏览器就可以完全实现,但他们一定要用一个 APP 来占用你的内存,就为了那么些权限、那么点流量、多赚那么点钱。

作为对此深恶痛绝的开发者,拒绝这种行为,从你我做起。

如果现有的技术栈可以满足需求,不要轻易的选择新的技术栈(学习小玩具除外)。避免由于新技术栈带来的不确定性导致项目稳定性下降。

那有什么需求导致必须要桌面端应用呢?

导入浏览器数据是什么意思_导入浏览器数据_

就是导入和启动游戏,由于浏览器的特性,浏览器不可以直接操作电脑的文件,所以这些功能必须依赖于 windows 的壳子,同时由于对 JS 的熟悉、对 UI 的想法,同时也不怎么需要软件性能, Electron 无疑就成了最好的选择。

Electron 简介

很多人一聊到 Electron 简介,就开始长篇大论了。

什么 Electron 是一个开源框架,由 xxx 开发,基于 xxx,核心是 xxx 、 ....

在我看来,这些都是 没用的废话 ,我想他们很多人自己都没想清楚,为什么要使用 Electron ,为什么不直接使用网站?所以才会写出来一堆假大空的东西。想看这些,我为什么不去官网?官网写的不如你的清晰吗?

这仅是针对文章而言。对小册而言,还是需要补充 Electron 的详细能力,因为文章与小册的目的不同。

上面的内容,都在官网看过,大家有兴趣也可以直接去 Electron 官网 看一下 ,对于本软件而言,选择 Electron 重点在以下几个功能。

我们的需求是,通过一个语言让一个网站包装成一个 APP ,然后在 APP 中管理游戏、启动游戏、且通过手柄控制游戏选择。

对于我们来讲,这些功能就已经足够了,至于其他杂七杂八的,对于我们来说都是锦上添花。

给 chrome 一个壳子包装成一个 app

这个功能对于开发者来讲,是一个鸡肋的功能。通常情况下,网站能实现的我们更愿意使用网站,而不是单独下载一个 APP ,既消耗性能又占用内存,同时还会降低启动速度。

但对于非开发者而言,其实 APP 更具有安全感,尤其对于国内的使用者。国内的使用者不仅仅是不使用 Chrome 的问题,包括收藏夹、链接地址,都是非常规操作(相信很多非开发者的书签栏,都是少儿不宜的内容)。

因此我们其实也需要一个 APP 的壳子。虽然 Electron 本质仍然是个浏览器,只不过是在 Chromium 的内核下缩减了非必要的功能,同时集成了 NodeJS ,然后通过一套 rpc 系统进行通讯。和本地直接启动一个 NodeJS + Chrome 网页进行接口调用也没有太大的区别。

同时支持 Mac、Windows、Linux

这点其实没有太多可说的,既然是基于 Chromium 和 NodeJS ,那它势必在多平台的支持上有很大的优势。

可以通过 node 运行脚本,操作本地软件与文件

这点可以说是我们使用的核心。

作为一个游戏启动器,我们势必要在本地文件中存好游戏的配置文件,以供我们对游戏的配置进行保存。

作为一个游戏启动器,同时我们势必需要通过 NodeJS 来进行游戏的启动与关闭。

所以这是我们选择使用 Electron 的核心诉求。

总结

这篇文章林林总总写了三千字,我预期整个系列大概在 5 - 10 万字,这篇作为开篇,写了比较多的碎碎念。

同时,简单的介绍下 Electron 的一些特点及对于我们需求的关注点。

下期将带大家开始入门 Electron ,从如何下载、安装,安装失败怎么办?怎么搭建我们的框架?等等开始我们的 Electron 入门系列课程。