我目前正在评估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是否仍然有用。
答案 0 :(得分:1)
要访问设备上的原生资源,您需要在启用BrowserWindow
的情况下运行电子nodeIntegration
。这是默认设置,但在将内容从网络加载到已启用的节点BrowserWindow
时,存在较大的security implications。如果您的网站是通过XSS泄露的,那么您的所有客户端PC都将对远程代码执行开放。
出于这个原因,您应该使用API构建后端服务,然后在网站上托管前端,在应用中托管分布式版本。您仍然可以使用相同的代码构建这两个代码。