electron打包后的桌面端能否同时支持外部浏览器访问?

需求如下:electron打包后的exe不仅能支持桌面端运行,也能支持外部浏览器访问。外部浏览器主要应用于局域网环境下其他电脑通过外部浏览器访问其他电脑上安装的electron应用。

我想了一下,开发时是可以通过外部浏览器访问的,照理说打包后应该也可以魔改支持的。
image.png
另外需要注意的是在渲染线程中应该是不能使用nodejs的api的,除渲染层外应该都是可以的吧?(不确定)

另外我这个需求还有什么更好的方法吗?简单来说桌面端必备,除此支持局域网环境下外部浏览器远程访问

阅读 1.9k
avatarAI BotBETA

这个需求是可行的,但实现起来可能会有一些困难。你需要考虑到以下几个问题:

  1. 安全性问题:在 Electron 应用中,渲染进程(渲染线程)是不可以使用 Node.js API 的,这是为了防止恶意代码的执行。这就意味着,如果你想在 Electron 应用中通过外部浏览器进行访问,你需要特别小心处理安全性问题。
  2. 网络设置:你需要确保你的 Electron 应用和外部浏览器可以共享网络。这可能涉及到网络设置和防火墙的设置。
  3. 应用设计:你的 Electron 应用需要设计成可以接受来自外部浏览器的请求,并且能够正确地响应这些请求。这可能需要你对 Electron 的网络编程有一定的理解。

如果你仍然想尝试实现这个需求,我建议你按照以下步骤操作:

  1. 创建 Electron 应用:首先,你需要创建一个 Electron 应用,这个应用需要能够接受来自外部的请求,并且能够处理这些请求。你可能需要使用到 Node.js 的网络编程知识。
  2. 设置网络共享:然后,你需要设置你的 Electron 应用和外部浏览器可以共享网络。这可能涉及到网络设置和防火墙的设置。
  3. 实现外部访问:最后,你需要在 Electron 应用中实现外部访问的功能。这可能涉及到在 Electron 应用中创建一个服务器,这个服务器可以接受来自外部浏览器的请求,并且将请求转发给 Electron 应用处理。

另外,你还可以考虑使用其他的技术来实现这个需求,例如使用 WebSocket 或者 WebRTC 等技术来实现桌面端和浏览器之间的通信。这种方法可能比使用 Electron 和外部浏览器访问更简单,更安全。

2 个回答

现在的思路有两个,一个是electron的渲染层代码和传统的web代码基本无区别,我用的是vue。所以vue的src层应该是复用的,所以稍微改动一下打包配置应该就可以将打包后的静态资源扔到后端java一起打成jar包。然后就可以在浏览器直接访问了。
桌面端的话还是按照之前electron构建,本机用electron生成的应用。其他pc用外部浏览器访问。
另外还有一点是非常重要的,我这个后端应该是长期运行的,所以electron生成的前端exe也是只作页面展示作用,即使前端关闭了后台还是要运行,所以这样的话感觉这个方案是更合适的。既能保证前端大部分代码同源,又能实现要求。不知道我有没有没考虑到的,欢迎指正

另一个就是electron,使用nodejs构建一个web服务器,访问自己的web层,但是我对这块并不是很熟悉,我看了打包后的静态资源electron好像都是嵌入到exe中的,所以如何做我现在还没有头绪,是否可行也不是很确定

完全是可行的,但是要做好h5的兼容,某些浏览器无法使用的api需要判断好环境再做处理。甚至可以直接与壳子分离,web页面单独打包发布,electron里面通过loadUrl来引用。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题