在Electron应用程序中访问本机资源

在Electron应用程序中访问本机资源,electron,Electron,我目前正在为一个即将到来的项目评估Electron。也许我的问题对于使用过电子的人来说是微不足道的。然而,我在文档中找不到答案,或者可能没有完全理解这个概念 我希望有一个web应用程序,用户可以通过浏览器访问,如果他们选择或从本机应用程序访问,如果他们想使用连接到pc的USB设备(在本例中为信用卡阅读器)。因此,main.js文件将像这样打开远程web应用程序 win = new BrowserWindow({width: 800, height: 600}) // and load

我目前正在为一个即将到来的项目评估Electron。也许我的问题对于使用过电子的人来说是微不足道的。然而,我在文档中找不到答案,或者可能没有完全理解这个概念

我希望有一个web应用程序,用户可以通过浏览器访问,如果他们选择或从本机应用程序访问,如果他们想使用连接到pc的USB设备(在本例中为信用卡阅读器)。因此,main.js文件将像这样打开远程web应用程序

  win = new BrowserWindow({width: 800, height: 600})

  // and load the index.html of the app.
  win.loadURL('http://www.example.com/login.html')

能够访问本地资源有什么区别吗(文件、端口等,如果页面是远程的还是本地的?换句话说,你仍然可以从由Electron包装的远程托管web应用程序访问USB端口,就像文件是本地的一样,就像在安装的本机Electron应用程序中一样?我想它会加载与本地相同的远程页面,但不确定ipc是否仍然工作。

要访问设备上的本机资源,您需要在启用了节点集成的情况下运行electron
BrowserWindow
。这是默认设置,但在将内容从web加载到启用了节点的
BrowserWindow
时会出现较大的问题。如果您的站点通过XSS受损,则您的所有客户端PC都将对r开放emote代码执行


因此,您应该使用API构建后端服务,然后在网站上承载前端,并在应用程序中承载分布式版本。您仍然可以使用相同的代码构建这两个版本。

能否详细介绍后端服务?我们无论如何都会构建一系列web服务。我想您的意思是后端服务会限制曝光,我想在这种情况下,只允许使用USB方法?后端服务将数据从服务器/数据库转移到客户端,从网站或电子应用程序加载到任何浏览器中。如果API不发送HTML或JavaScript,坏人在客户端机器上调用本机代码的方式就会减少