首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
拉勾
V2EX  ›  分享创造

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

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

    项目地址: 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
        1
    MeteorCat   2018-02-27 08:48:49 +08:00 via Android
    调用系统浏览器?话说如果 IE6 这种岂不哭死
        2
    binux   2018-02-27 08:49:34 +08:00
    这就是「这是我给 Electron 造的减肥药」?

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

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

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

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

    然后。。我借楼问个问题。。。一直找不到答案。我在 webview 里用了 iframe 标签,然后在 iframe 里点击跳转的时候,整个 webview 都发生了跳转,有办法只让 iframe 跳转吗?😂
        28
    daigouspy   2018-02-27 17:15:42 +08:00 via Android
    @codehz uwp APP 才可以,win32 不行
        29
    codehz   2018-02-27 17:28:15 +08:00 via Android
    @daigouspy C++可以做 uwp 应用啊
        30
    POPOEVER   2018-02-27 18:37:13 +08:00
    Electron 用户+1,膜拜一下作者,感觉这个是不是会很适合在树莓派上用诶,轻量和简约
        31
    devtiange   2018-02-28 05:12:29 +08:00
    @zcbenz 所以在 win 10 上调用的是 IE 什么版本的内核?
        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 yauzl@2.4.1module.js: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/_cmake-binaries@1.0.5-2@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
    ```

    求指导一下。
        33
    jedihy   2018-03-08 08:37:32 +08:00
        34
    DotKu   338 天前
    膜拜大神~
        35
    yaolixing   310 天前 via Android
    推荐他山框架
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2219 人在线   最高记录 4385   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 19ms · UTC 10:24 · PVG 18:24 · LAX 03:24 · JFK 06:24
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1