luyinge

有个疑问,如果都觉得 Electron 是电子垃圾,那为啥不直接用用户的浏览器做 UI 而不是自己封一个 Chromium

  •  1
     
  •   luyinge · Nov 22, 2023 · 25183 views
    This topic created in 1076 days ago, the information mentioned may be changed or developed.

    只是疑问,如果一个 Electron 应用将 Nodejs 部分打包成二进制文件,然后使用系统原生平台做一个启动按钮,点击后直接执行这个二进制文件 + 启动一个本地 http server 用来在 localhost 上展示前端 UI 界面,通信直接走 socket

    这么搞初看上去好像也没啥毛病,当然肯定会存在很多限制,不知道这种限制会是啥?为啥都没见到有人这么玩过

    125 replies  •  2023-12-22 06:52:15 +08:00
    1  2  
    ❮ ❯
    AoEiuV020JP
    AoEiuV020JP
    Nov 23, 2023
    101
    @Hug125 #99 我没有使用 Inoreader ,但我在用的 fluent-reader 就有支持 Inoreader ,不知道效果咋样,
    如果很多个支持 Inoreader 的客户端你使用都有问题,会不会是用法不对,
    lizy0329
    lizy0329
    Nov 23, 2023
    102
    散了吧,这个东西连文章标题未写不好,还讨论个啥?最厉害的是还有人正经回答?
    go522000
    go522000
    Nov 23, 2023
    103
    想像一下用户使用场景,nodejs 封装后,只有一个启动与关闭的按钮,剩下的交给本地浏览器。
    简洁,然后交给用户使用。
    刚好,用户是用 360 浏览器,软件用着用着,突然右下角给你弹个“是兄弟就来砍我一刀”?刚好软件右下角是进度提示或状态显示,那体验会不会很差。
    然后我想实现弹出一个小窗口作为客服或聊天窗口,360 直接给你报个不安全(或没有提示,只在地址栏显示已拦截多少弹窗),或者更狠的直接提示让用户下载 360 杀毒?
    想像一下这几个场景,我还是选择 electron ,实在不行 tauri 也比 360 浏览器好。
    360 浏览器只是一个场景,因为你无法控制用户自己的浏览器安装了啥插件,比如去广告插件或皮肤等,某些功能无法点击或错乱了,用户又不知道啥原因,最后只能怪软件开发商。
    Nich0la5
    Nich0la5
    Nov 23, 2023
    104
    @344457769 #73 确实很符合 electron 尽可能为了开发者爽的设计思路
    yukinotech
    yukinotech
    Nov 23, 2023
    105
    举个不恰当的例子,qb 虽然有独立 gui ,但是本身会提供一个 localhost 的 server ,和你说的思路是基本类似的
    mylovesaber
    mylovesaber
    Nov 23, 2023
    106
    @Nich0la5 linux 系统中,内核为系统最底层,在内核之上,有且只有一个程序集合叫 glibc (不考虑其他分支的前提下),剩下能组建出用户可用的 linux 系统的所有程序几乎在运行时都要调用 glibc ,因为所有程序都希望小,依赖细化,即 A 程序依赖于 B 和 C 依赖程序,所以 A 本身不包括 B 和 C 的依赖,只有当你装了 B 和 C 后,A 才被允许安装进系统。结果导致对 glibc 的版本强关联,你可以随便乱升级各种软件的二进制,但你不能随便升级 glibc 二进制,因为如果只升级 glibc ,你系统直接报废,只剩一个内核能运行,所以如果有一个软件不希望缚手缚脚,那么他运行时就需要内置一个 glibc ,间接得,linux 软件包开始推广通用包结构,比如 flatpak (不是说他就内置了 glibc ),deepin 也有了自己的玲珑结构,目的就是要摆脱又臭又长自身又不内嵌的依赖链(树),只要内核允许的最低 glibc 版本低于软件本身依赖,这个软件不能运行,哪怕其他任何一个软件对 glibc 有刚需依赖而 glibc 版本低导致运行不了,都跟自己没一丁点关系,兼容性 max 了
    huangliu
    huangliu
    Nov 23, 2023
    107
    你说的这个方案,不就是我开源项目在用的吗。选 wails 或者 tauri 就可以了。
    就是系统兼容性确实没有 electron 那么好
    finalwave
    finalwave
    Nov 23, 2023
    108
    点开前以为是 tauri ,点开后一看是 webUI 。aria2 的前端 UI 界面都不知道多少种了。
    gamexg
    gamexg
    Nov 23, 2023
    109
    @luyinge rsyncthing 就是这样,一个托盘,启动界面是浏览器。
    zliea
    zliea
    Nov 23, 2023
    111
    现在一体机很多都这么干了。
    nullico
    nullico
    Nov 23, 2023
    112
    @hamsterbase #14 请问下 react native 能源生运行 nodejs 么?包括那些 native module?
    dai269619118
    dai269619118
    Nov 23, 2023
    113
    不会的用的什么东西在他手里都用不好
    现在硬盘这么便宜只有程序员会纠结在 100m
    niceyuri
    niceyuri
    Nov 23, 2023
    114
    强烈安利《 the Object Primer 》,作者 Scott W.Ambler 就是 UML 的发明者。这本书应该能解决你所有疑问
    niceyuri
    niceyuri
    Nov 23, 2023
    115
    @niceyuri 对不起回错了帖- -
    mokevip
    mokevip
    Nov 23, 2023
    116
    额,真的不考虑 electron 有很多调用系统功能的方法是浏览器不支持的?
    nekomoyi
    nekomoyi
    Nov 23, 2023
    117
    我常用 sunshine 来作为远程桌面工具,它就是这样子实现的,运行一个服务作为后端,前端页面通过浏览器打开网页来进行基本的配置等操作。
    hamsterbase
    hamsterbase
    Nov 23, 2023❤️1
    118
    @nullico


    react native 内置 nodejs 使用的是这个项目。


    https://github.com/nodejs-mobile/nodejs-mobile-react-native


    可以运行 nodejs 与 native module 。

    如果是 native module , 需要自己重新构建一下。 一般需要构建 3 份,分别为 iOS 模拟器,iOS 真机,安卓。

    具体可以看 https://github.com/nodejs-mobile/prebuild-for-nodejs-mobile
    sakura6264
    sakura6264
    Nov 24, 2023
    119
    看到很多说浏览器这个实现不了那个实现不了的,op 这个方案里不是还有 node 吗,又不是只有一个 html ,放到 node 上实现不了吗,写 electron 也是这么干的吧
    pursuer
    pursuer
    Nov 24, 2023
    120
    @mylovesaber 这个我觉得 libc 兼容性是有点锅的。像浏览器,依然保留对古老网页的兼容,虽然 ABI 兼容比 js 麻烦很多。像 windows ,升级了这么多版本依然保持了较好的兼容性,可能也是得益于 COM 机制。
    unco020511
    unco020511
    Nov 24, 2023
    121
    我觉得 Electron 还挺好用的
    QingXuJiaZhi
    QingXuJiaZhi
    Nov 24, 2023
    122
    @sakura6264 对,很多人误解很大,可能没接触过类似软件。
    Hozoy
    Hozoy
    Nov 24, 2023
    123
    @luyinge 你说的这样的软件是有的,比较出名的就是 syncthing ,国内对标的是微力同步。
    mylovesaber
    mylovesaber
    Nov 25, 2023
    124
    @pursuer 其实一般人也不会轻易动系统中的 libc ,主要的冲突点就是国内一群人用 centos7 ,然后遇到比如等保验收或者攻防演练时又不能用老版本软件,新版软件又必须要新版本 glibc ,然后一些 sm 环境禁止用 docker ,就每个软件都得内嵌一个 glibc ,相当得蛋疼,比如 redis ,一个软件编译出来就 5m ,自包含所有自有依赖后,体积将近 400m ,虽然打成 rpm 包只有 35m 左右,这情况刚好跟楼主说的那情况差不多了
    Ashes26
    Ashes26
    Dec 22, 2023 via Android
    125
    用户:我的上古浏览器也可以吗
    1  2  
    ❮ ❯
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3135 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 66ms · UTC 11:45 · PVG 19:45 · LAX 03:45 · JFK 06:45
    ♥ Do have faith in what you're doing.