写了一个用网页做桌面应用的新轮子 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
zcbenz
V2EX    分享创造

写了一个用网页做桌面应用的新轮子

  •  2
     
  •   zcbenz
    zcbenz 2018-02-27 08:38:10 +08:00 7671 次点击
    这是一个创建于 2796 天前的主题,其中的信息可能已经有所发展或是发生改变。

    项目地址: https://github.com/yue/muban

    和 Electron 不一样的是,这个项目使用系统的 webview 而不是自带 Chromium 浏览器,除了 webview 以外还可以使用系统原生的控件。另外默认没有给 webview 提供各种底层 API,而是提供了 API 供用户往网页注入绑定。

    目标用户和 Electron 完全不一样,主要是用于简单精巧的程序。

    最后如果觉得项目还不错的话,希望大家能帮忙去 Hacker News 和 Reddit 帮忙投个票:
    https://news.ycombinator.com/item?id=16469088
    https://www.reddit.com/r/programming/comments/80hzfe/muban_build_crossplatform_desktop_apps_with/

    截图(实在不知道 V2EX 里面怎么缩小了放一行,凑合着看大图吧):

    35 条回复    2018-05-17 06:47:29 +08:00
    MeteorCat
        1
    MeteorCat  
       2018-02-27 08:48:49 +08:00 via Android
    调用系统浏览器?话说如果 IE6 这种岂不哭死
    binux
        2
    binux  
       2018-02-27 08:49:34 +08:00
    这就是「这是我给 Electron 造的减肥药」?

    ref: [这是我给 Electron 开的减肥药,你觉得行么?]( t/430904)
    xylitolLin
        3
    xylitolLin  
       2018-02-27 09:00:20 +08:00
    所以起码有三个浏览器需要兼容?
    zcbenz
        4
    zcbenz  
    OP
       2018-02-27 09:03:17 +08:00
    @MeteorCat @xylitolLin

    macOS 和 Linux 上可以保证是近年的 WebKit,Windows 确实得老老实实测试浏览器兼容性。没办法,程序体积和浏览器兼容性只能二选一。
    fengyj
        5
    fengyj  
       2018-02-27 09:04:23 +08:00 via Android
    变相的浏览器么?感觉好像只适合小型的网页诶
    zhixiao
        6
    zhixiao  
       2018-02-27 09:08:15 +08:00
    不管怎么样先看看 毕竟是搞出 nw 和 electron 的大佬
    zsj950618
        7
    zsj950618  
       2018-02-27 09:57:10 +08:00 via Android
    终于要减肥了! mark
    zsj950618
        8
    zsj950618  
       2018-02-27 09:59:31 +08:00 via Android
    有个问题,为啥 Linux 上是 webkit 而不是 chromium ?或者说如果我没有 webkit,会怎么处理?
    等有时间再研究下(
    zcbenz
        9
    zcbenz  
    OP
       2018-02-27 10:12:41 +08:00 via iPhone
    @zsj950618 大部分发行版都默认安装了 libwebkit2gtk。
    codehz
        10
    codehz  
       2018-02-27 10:19:06 +08:00 via Android
    windows 上能用 edge 的内核吗。。。听说没有公开 com 接口,但是似乎强行调用还是可以的
    mokeyjay
        11
    mokeyjay  
       2018-02-27 10:20:21 +08:00
    emmmmm ……我还是宁愿启动浏览器
    anewg
        12
    anewg  
       2018-02-27 10:29:24 +08:00
    我没记错的话楼主就是 electron 作者吧?
    zcbenz
        13
    zcbenz  
    OP
       2018-02-27 10:39:02 +08:00
    @codehz 我也想用,但搜了一圈结论好像都是不行。
    zcbenz
        14
    zcbenz  
    OP
       2018-02-27 10:40:47 +08:00
    @mokeyjay 我还是宁愿用 Electron / 我还是宁愿写 Chrome Extension / 我还是宁愿用 PWA ……
    zcbenz
        15
    zcbenz  
    OP
       2018-02-27 10:41:19 +08:00
    @anewg 是的。
    codehz
        16
    codehz  
       2018-02-27 10:46:37 +08:00 via Android
    @zcbenz 如果变成商店应用的话,倒是可以的(纯 c++使用
    chinvo
        17
    chinvo  
       2018-02-27 10:52:25 +08:00
    Windows 上兼容性是个大问题

    忽略这个,感觉是极好的
    learnshare
        18
    learnshare  
       2018-02-27 10:55:12 +08:00
    我还是选择支持 PWA,不过考虑到几家浏览器存在一定差异,PWA 桌面版的体验不一定会很好
    skadi
        19
    skadi  
       2018-02-27 11:09:31 +08:00
    就不能只使用 html 和 css 布局.然后其他的另说?
    lmqdlr
        20
    lmqdlr  
       2018-02-27 11:15:12 +08:00
    其实 Electron 软件要是能公用一个 Electron 就好
    zsj950618
        21
    zsj950618  
       2018-02-27 12:30:51 +08:00
    @zcbenz 可是 KDE 用户就只有 libqt5webkit5 了(
    abmin521
        22
    abmin521  
       2018-02-27 13:21:46 +08:00 via Android
    20L +1 不过那不是又变成变相的 web server 了???
    goldenlove
        23
    goldenlove  
       2018-02-27 15:00:33 +08:00
    @lmqdlr 这个就有点类似微信小程序概念了.....

    顺便膜拜楼主~ 没想到在这见 Electron 作者~
    congeec
        24
    congeec  
       2018-02-27 15:44:11 +08:00 via iPhone
    终于有人做了!
    cnwtex
        25
    cnwtex  
       2018-02-27 16:03:52 +08:00
    支持!
    BikeCoder
        26
    BikeCoder  
       2018-02-27 16:40:21 +08:00
    膜拜大神
    jecshcier
        27
    jecshcier  
       2018-02-27 17:12:09 +08:00 via iPhone
    @zcbenz 居然碰到了作者。。。。非常感谢,已使用 electron 一年多

    然后。。我借楼问个问题。。。一直找不到答案。我在 webview 里用了 iframe 标签,然后在 iframe 里点击跳转的时候,整个 webview 都发生了跳转,有办法只让 iframe 跳转吗?
    daigouspy
        28
    daigouspy  
       2018-02-27 17:15:42 +08:00 via Android
    @codehz uwp APP 才可以,win32 不行
    POPOEVER
        30
    POPOEVER  
       2018-02-27 18:37:13 +08:00
    Electron 用户+1,膜拜一下作者,感觉这个是不是会很适合在树莓派上用诶,轻量和简约
    devtiange
        31
    devtiange  
       2018-02-28 05:12:29 +08:00
    @zcbenz 所以在 win 10 上调用的是 IE 什么版本的内核?
    Akarin
        32
    Akarin  
       2018-03-03 23:37:49 +08:00
    运行 npm I 时出错,貌似安装 cmake-binaries 这个包的时候出问题了。
    macOS 10.13.2
    node v8.9.1
    npm 5.6.0

    因为是国内环境,使用了 cnpm

    ```
    [0/4] Installing [email protected]:538
    throw err;
    ^

    Error: Cannot find module 'tar'
    at Function.Module._resolveFilename (module.js:536:15)
    at Function.Module._load (module.js:466:25)
    at Module.require (module.js:579:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/Users/akari/Developer/muban/node_modules/[email protected]@cmake-binaries/preinstall.js:3:13)
    at Module._compile (module.js:635:30)
    at Object.Module._extensions..js (module.js:646:10)
    at Module.load (module.js:554:32)
    at tryModuleLoad (module.js:497:12)
    at Function.Module._load (module.js:489:3)
    Install fail! Error: Run "sh -c node preinstall.js" error, exit code 1
    Error: Run "sh -c node preinstall.js" error, exit code 1
    at ChildProcess.proc.on.code (/usr/local/lib/node_modules/cnpm/node_modules/runscript/index.js:74:21)
    at emitTwo (events.js:126:13)
    at ChildProcess.emit (events.js:214:7)
    at maybeClose (internal/child_process.js:925:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5)
    npminstall version: 3.2.1
    npminstall args: /usr/local/Cellar/node/8.9.1/bin/node /usr/local/lib/node_modules/cnpm/node_modules/npminstall/bin/install.js --china --usercOnfig=/Users/akari/.cnpmrc --disturl=https://npm.taobao.org/mirrors/node --registry=http://registry.npm.taobao.org
    ```

    求指导一下。
    jedihy
        33
    jedihy  
       2018-03-08 08:37:32 +08:00
    DotKu
        34
    DotKu  
       2018-04-19 15:19:48 +08:00
    膜拜大神~
    yaolixing
        35
    yaolixing  
       2018-05-17 06:47:29 +08:00 via Android
    推荐他山框架
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1099 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 38ms UTC 17:55 PVG 01:55 LAX 10:55 JFK 13:55
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86