访问Electron App中的本地资源

时间:2017-02-28 18:42:10

标签: electron

我目前正在评估Electron即将开展的项目。对于使用过Electron的人来说,也许我的问题是微不足道的。但是,我无法在文档中找到答案,或者可能没有完全掌握这个概念。

我希望有一个用户可以通过浏览器访问的网络应用程序(如果他们选择)或来自原生应用程序,如果他们想要使用连接到他们电脑的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是否仍然有用。

1 个答案:

答案 0 :(得分:1)

要访问设备上的原生资源,您需要在启用BrowserWindow的情况下运行电子nodeIntegration。这是默认设置,但在将内容从网络加载到已启用的节点BrowserWindow时,存在较大的security implications。如果您的网站是通过XSS泄露的,那么您的所有客户端PC都将对远程代码执行开放。

出于这个原因,您应该使用API​​构建后端服务,然后在网站上托管前端,在应用中托管分布式版本。您仍然可以使用相同的代码构建这两个代码。