使用 electron 代理包装 web 网站

本贴最后更新于 2356 天前,其中的信息可能已经物是人非

之前的帖子是:https://hacpai.com/article/1536118267393

简单的说我要包装我的网站到 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,它构建的应用可在这三个操作系统上面运行。

    15 引用 • 136 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • mainlove
    作者

    凑合用 electron-progressbar 配合 electron-dl 实现了。。

    electron 没有什么 download explorer 这种 lib,这么大的需求竟然没人开发个

  • 其他回帖
  • 88250

    我没搞过下载管理,估计需要网站后台配合一下,比如如果是 electron 端就弄个 loading 遮罩之类的,凑合一下..

    1 回复

推荐标签 标签

  • 京东

    京东是中国最大的自营式电商企业,2015 年第一季度在中国自营式 B2C 电商市场的占有率为 56.3%。2014 年 5 月,京东在美国纳斯达克证券交易所正式挂牌上市(股票代码:JD),是中国第一个成功赴美上市的大型综合型电商平台,与腾讯、百度等中国互联网巨头共同跻身全球前十大互联网公司排行榜。

    14 引用 • 102 回帖 • 329 关注
  • OneNote
    1 引用 • 3 回帖 • 6 关注
  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    949 引用 • 943 回帖
  • Wide

    Wide 是一款基于 Web 的 Go 语言 IDE。通过浏览器就可以进行 Go 开发,并有代码自动完成、查看表达式、编译反馈、Lint、实时结果输出等功能。

    欢迎访问我们运维的实例: https://wide.b3log.org

    30 引用 • 218 回帖 • 641 关注
  • ZeroNet

    ZeroNet 是一个基于比特币加密技术和 BT 网络技术的去中心化的、开放开源的网络和交流系统。

    1 引用 • 21 回帖 • 634 关注
  • IPFS

    IPFS(InterPlanetary File System,星际文件系统)是永久的、去中心化保存和共享文件的方法,这是一种内容可寻址、版本化、点对点超媒体的分布式协议。请浏览 IPFS 入门笔记了解更多细节。

    21 引用 • 245 回帖 • 240 关注
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    9033 引用 • 41124 回帖 • 127 关注
  • Access
    1 引用 • 3 回帖 • 1 关注
  • VirtualBox

    VirtualBox 是一款开源虚拟机软件,最早由德国 Innotek 公司开发,由 Sun Microsystems 公司出品的软件,使用 Qt 编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。

    10 引用 • 2 回帖 • 13 关注
  • Swagger

    Swagger 是一款非常流行的 API 开发工具,它遵循 OpenAPI Specification(这是一种通用的、和编程语言无关的 API 描述规范)。Swagger 贯穿整个 API 生命周期,如 API 的设计、编写文档、测试和部署。

    26 引用 • 35 回帖 • 1 关注
  • RIP

    愿逝者安息!

    8 引用 • 92 回帖 • 380 关注
  • FFmpeg

    FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。

    23 引用 • 32 回帖 • 1 关注
  • Excel
    31 引用 • 28 回帖 • 1 关注
  • Vditor

    Vditor 是一款浏览器端的 Markdown 编辑器,支持所见即所得、即时渲染(类似 Typora)和分屏预览模式。它使用 TypeScript 实现,支持原生 JavaScript、Vue、React 和 Angular。

    359 引用 • 1832 回帖
  • Love2D

    Love2D 是一个开源的, 跨平台的 2D 游戏引擎。使用纯 Lua 脚本来进行游戏开发。目前支持的平台有 Windows, Mac OS X, Linux, Android 和 iOS。

    14 引用 • 53 回帖 • 549 关注
  • 爬虫

    网络爬虫(Spider、Crawler),是一种按照一定的规则,自动地抓取万维网信息的程序。

    106 引用 • 275 回帖
  • Dubbo

    Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,是 [阿里巴巴] SOA 服务化治理方案的核心框架,每天为 2,000+ 个服务提供 3,000,000,000+ 次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。

    60 引用 • 82 回帖 • 600 关注
  • 笔记

    好记性不如烂笔头。

    311 引用 • 796 回帖
  • Visio
    1 引用 • 2 回帖
  • Angular

    AngularAngularJS 的新版本。

    26 引用 • 66 回帖 • 545 关注
  • Anytype
    3 引用 • 31 回帖 • 12 关注
  • 代码片段

    代码片段分为 CSS 与 JS 两种代码,添加在 [设置 - 外观 - 代码片段] 中,这些代码会在思源笔记加载时自动执行,用于改善笔记的样式或功能。

    用户在该标签下分享代码片段时需在帖子标题前添加 [css] [js] 用于区分代码片段类型。

    113 引用 • 770 回帖
  • CodeMirror
    1 引用 • 2 回帖 • 141 关注
  • Electron

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

    15 引用 • 136 回帖
  • TGIF

    Thank God It's Friday! 感谢老天,总算到星期五啦!

    289 引用 • 4492 回帖 • 656 关注
  • Follow
    4 引用 • 12 回帖 • 1 关注
  • 音乐

    你听到信仰的声音了么?

    61 引用 • 512 回帖