V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
drymonfidelia
V2EX  ›  程序员

求助怎么打包一个体积小 兼容性和微信电脑版接近的能够正常渲染 Angular 13 网页的专用浏览器

  •  
  •   drymonfidelia · 2023-11-07 09:25:34 +08:00 · 2589 次点击
    这是一个创建于 418 天前的主题,其中的信息可能已经有所发展或是发生改变。
    公司有一个 Angular 13 写的网页版加盟店管理系统,用户用的浏览器什么妖魔鬼怪都有,2345 浏览器、QQ 浏览器已经算好了,还有什么魔方浏览器的,都是各种魔改精简的远古内核,经常有人反应表格加载不出来(因为需要的功能很多,我用的是 ag-grid 这个英国产的 datagrip 组件,在国内有一点冷门,国产浏览器的兼容性不太好)、不能提交导出什么的,技术员好不容易远程给他们装上配置好 Chrome ,还没过一天默认浏览器又被锁定成什么“旗鱼浏览器”了。领导想让打包成 exe 给他们用,还想借此机会简单防止一下用户使用按键精灵之类的工具自动提交一些安全相关的检查单(不是强需求,能简单实现最好,复杂就不做了)(不能用扫描进程的方法,没办法确定不是用户点的,最好是无感让这类软件失效)验证码没用,只能让员工点验证码,还是可以不看检查单。限制点击频率也没用,按键精灵可以弄间隔,而且影响正常操作的用户。
    因为加盟店电脑上都有微信电脑版,所以兼容性能够接近微信电脑版就好。如果可以的话最好安装包体积能小一点,方便直接通过微信分发。Electron 打包不支持 win7 ,而且包有点大,超过了微信文件大小限制,有没有方便的把像视频播放这样大的我没用到的功能砍掉的方法?领导说最好能兼容 xp ,兼容 win7 是底线,很多门店都在用 win7 。
    听说 V2EX 懂这方面的人很多,于是来咨询一下。上周帖子发错板块了,一周只有一个人回复。
    32 条回复    2023-11-07 16:04:43 +08:00
    focuxin
        1
    focuxin  
       2023-11-07 09:32:03 +08:00
    C# 内嵌一个 CEF 浏览器
    tool2d
        2
    tool2d  
       2023-11-07 09:35:03 +08:00 via Android
    用老版本的 Electron 打包,可以支持 win7 。
    单论兼容性,肯定是 Electron 是最好的。
    fengshils
        3
    fengshils  
       2023-11-07 09:39:00 +08:00
    nwjs 老版本?
    aosan926
        4
    aosan926  
       2023-11-07 09:41:29 +08:00
    https://github.com/weolar/miniblink49 ,文档说可以支持到 XP ,可以参考下
    ynxh
        5
    ynxh  
       2023-11-07 09:42:14 +08:00
    tauri
    learninining
        6
    learninining  
       2023-11-07 09:42:16 +08:00
    lizhenda
        7
    lizhenda  
       2023-11-07 09:46:35 +08:00
    [Electron 打包不支持 win7] 谁说不支持了?你不要盯着最最新版看啊 ... Electron 22.x 不行么
    tool2d
        8
    tool2d  
       2023-11-07 09:51:11 +08:00
    @aosan926 xp 是领导的无理要求,听听就好了。

    几乎没几个前端框架,还能支持那么老的内核版本,除非代码用 jq 手写。
    also24
        9
    also24  
       2023-11-07 09:51:56 +08:00   ❤️ 2
    既然你都已经给客户装上 Chrome 了,还管 “默认浏览器” 干什么呢?

    桌面新建一个快捷方式不就好了:
    chrome.exe --app="https://www.v2ex.com/"

    图标改成你们系统的图标,告诉他们用这个进管理系统
    drymonfidelia
        10
    drymonfidelia  
    OP
       2023-11-07 09:52:34 +08:00
    @ynxh
    @learninining tauri 好像都不支持 win7
    drymonfidelia
        11
    drymonfidelia  
    OP
       2023-11-07 09:55:23 +08:00
    @also24 会有新用户,让技术员一个个帮忙安装很麻烦
    type
        12
    type  
       2023-11-07 09:59:34 +08:00   ❤️ 2
    换个思路,开发一个「启动器」,通过启动器打开 Chrome 并加载你们的系统,如果检测到没有安装 Chrome ,就给客户的电脑安装一个
    weijundong
        13
    weijundong  
       2023-11-07 10:00:09 +08:00
    新建 bat 文件:应用.bat
    内容:
    @echo off
    start chrome https://www.v2ex.com
    fengshils
        14
    fengshils  
       2023-11-07 10:02:31 +08:00
    op 就楼上说的 Electron 选个支持 win7 的旧版本打包就好了 没必要纠结
    also24
        15
    also24  
       2023-11-07 10:03:51 +08:00
    @drymonfidelia #11
    找一个绿色版的 Chrome 相对来说要简单的多,打一个自解压的压缩包就行了
    zsj1029
        16
    zsj1029  
       2023-11-07 10:05:07 +08:00
    Electron 只引入打包后的 dist 即可,npm 模块都可以抛弃,真正的代码,除了 Electron 自身的内核,只有 dist 的内容而已,而且打包出来是 exe 支持 next 的安装很方便
    shunia
        17
    shunia  
       2023-11-07 10:25:43 +08:00
    找人写一段 bat 脚本,用来自动下载安装 chrome 并且设置一个 9 楼说的快捷方式,告诉用户这就是安装好以后的软件入口。
    或者你复杂一点做一个安装器,把上面的事情一条龙一下也可以。

    给 Angular 再套一层那不是 s 上套 s 吗?给自己找不痛快?
    qinjiang
        18
    qinjiang  
       2023-11-07 11:37:12 +08:00
    使用 electron ,加载你们的网址,一个包 60 兆。我现在公司就是这么做的
    daliusu
        19
    daliusu  
       2023-11-07 11:43:46 +08:00
    所以你为什么不用 electron 。。。
    daliusu
        20
    daliusu  
       2023-11-07 11:44:38 +08:00
    electron 老板本是只吃 win7 的,你一个套壳难道还必须要用最新版?
    duanxianze
        21
    duanxianze  
       2023-11-07 11:45:02 +08:00
    楼上说的对 你找个旧版 electron 最好了
    ospider
        22
    ospider  
       2023-11-07 11:46:55 +08:00
    也可以用 qt webengine 组件
    IvanLi127
        23
    IvanLi127  
       2023-11-07 11:54:03 +08:00 via Android
    electron 直接用就完事了。想要体积小,也只能给 win10 用。至于性能,都用网页了就别考虑浏览器的性能了。
    你想跑 xp 上,就试试 miniblink 能不能用吧,我以前用,比正常的新版本浏览器少很多特性,代码要改,不知道你们项目能不能正常运行。
    a33291
        24
    a33291  
       2023-11-07 12:35:29 +08:00
    更推荐启动器的方式,用不依赖运行时的技术写,没有 chrome 就下载一个(绿色版的放你们自己服务器),然后新建一个桌面快捷方式就完事了.因为个人感觉这个成本最低.

    其他的比如封装 cef 或者 electron 都行,但是成本相对高一点
    dode
        25
    dode  
       2023-11-07 12:58:55 +08:00
    @type 对,搞个云服务的 cdn 分发客户端加速
    c2const
        26
    c2const  
       2023-11-07 14:31:40 +08:00
    "不能用扫描进程的方法,没办法确定不是用户点的,最好是无感让这类软件失效"
    ---------------

    1.不能扫描进程的方法。其实这是一个低成本的方法,的确可以挡住一批人,但对抗也很容易,隐藏进程/改进程名/加壳/改特征值等等 :(

    2.确定是不是用户点的。这点比较难,需要 win 驱动开发和安全对抗,至少是和按键精灵(一般带驱动)、鼠标和键盘的硬件驱动等对抗才行,可以放弃这个需求 :(

    3.无感失效。这个比较好实现,只要能检测到,正常开发功能就行。但对方可以破解你的 EXE ,不过只要网上没公开的破解版,那很大一部分人就不会用到破解版 :)
    ----------------

    如果领导不批足够预算,可以考虑放弃这方面的需求 :)
    mgzu
        27
    mgzu  
       2023-11-07 14:47:13 +08:00
    提供一个思路,用 https://github.com/go-rod/rod 写个程序,可以自动下载 chromium (可以指定版本),打开你们官网
    sharpy
        28
    sharpy  
       2023-11-07 15:08:30 +08:00
    提供一个思路,有个叫 miniblink 的东西,你可以跟这个带佬聊一下
    javaluo
        29
    javaluo  
       2023-11-07 15:08:56 +08:00 via iPhone
    @a33291 觉得这个好
    zyxk
        30
    zyxk  
       2023-11-07 15:57:40 +08:00
    最最最简单的,网页检测一下浏览器啊, 如果不是 chrome ,
    直接提示不支持此浏览器, 然后转跳下载浏览器或下载你定制打包的浏览器页面啊
    Rache1
        31
    Rache1  
       2023-11-07 15:58:20 +08:00
    @sharpy #28 搜了一下,结果出来了知乎这两条,离谱。

    constance
        32
    constance  
       2023-11-07 16:04:43 +08:00
    miniblink 有 electron xp 兼容版本 https://miniblink.net/views/exhance.html
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2378 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 02:15 · PVG 10:15 · LAX 18:15 · JFK 21:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.