之前的帖子是: 限定用户只能通过专有机器访问网站

简单的说我要包装我的网站到 chrome 里,使得它看上去像是一个桌面应用,并且通过代理的方式进行授权的校验, 流程如下

用户打开一个看上去是 app 的东西,看到了是一个指向 http//:localhost 的网站入口,这个网站入口通过本地的转发服务发送 https 请求到真正的外网网站(在这一步进行一些权限的判定,机制很多不述)

在 @88250 的诱导下开始了这个基于 electron 的开发工作

1 https://github.com/nodejitsu/node-http-proxy
既然要用 nodjes,那么就先搞 http 代理,本来想自己写一个,然后一搜索,发现有现成的,而且默认就是支持 http->https, star 数量很不错,文档也清晰 ,5 行代码搞定。

2 https://github.com/simply-coded/electron-navigation
用 electron 包装一个游览器,本来想自己结合 webview 搞什么前进后退,tab 页管理的功能,
结果发现又有现成的,直接拿过来用, 这个项目的 star 数很少,感觉不放心,有时间还是研究下原理吧

3 打包,自动更新,这个 electron 都有现成的工具,分分钟搞定

到此,完全实现了我的基本需求,仅仅用了半天就搞定了,大概是我太优秀了吧
当然测试一下还是发现了几个问题

1 在 win10 上有些 png 图片显示异常,这个确实很奇怪,在同事的 win7 电脑上毫无问题,不知道是什么 bug,实在不行让美工全部改成其他图片格式?

2 pdf 显示,这个我让同事去改成用 pdf.js 显示 pdf,我估计应该没问题吧

3 网站的下载的功能:这个确实是个大问题,我们网站提供用户下载动态生成的 excel 文件,在 eletron 里点击下载不会出现像 chrome 那种本地下载底部进度显示,而且过那么 2,3 秒出现保存的弹出框,由于我们的导出 excel 很大,时间就算优化也还是需要 2-3 秒,electron 里面没有 donwload explorer 这个东西,这个解决方案仍旧需要 @88250 的诱导啊

总的来说这个整个工作还是比较顺利的,方案也比较科学,希望给以后要包装网站到本地 app 的人一个启示吧

  • Electron

    Electron 基于 Chromium 和 Node.js,让你可以使用 HTML、CSS 和 JavaScript 构建应用。它是一个由 GitHub 及众多贡献者组成的活跃社区共同维护的开源项目,兼容 Mac、Windows 和 Linux,它构建的应用可在这三个操作系统上面运行。

    5 引用 • 88 回帖 • 3 关注
感谢    关注    收藏    赞同    反对    举报    分享