main.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. const {app, BrowserWindow} = require('electron')
  2. const path = require('path')
  3. function createWindow () {
  4. const mainWindow = new BrowserWindow({
  5. width: 800,
  6. height: 600
  7. })
  8. mainWindow.webContents.session.on('select-hid-device', (event, details, callback) => {
  9. event.preventDefault()
  10. if (details.deviceList && details.deviceList.length > 0) {
  11. callback(details.deviceList[0].deviceId)
  12. }
  13. })
  14. mainWindow.webContents.session.on('hid-device-added', (event, device) => {
  15. console.log('hid-device-added FIRED WITH', device)
  16. })
  17. mainWindow.webContents.session.on('hid-device-removed', (event, device) => {
  18. console.log('hid-device-removed FIRED WITH', device)
  19. })
  20. mainWindow.webContents.session.setPermissionCheckHandler((webContents, permission, requestingOrigin, details) => {
  21. if (permission === 'hid' && details.securityOrigin === 'file:///') {
  22. return true
  23. }
  24. })
  25. mainWindow.webContents.session.setDevicePermissionHandler((details) => {
  26. if (details.deviceType === 'hid' && details.origin === 'file://') {
  27. return true
  28. }
  29. })
  30. mainWindow.loadFile('index.html')
  31. }
  32. app.whenReady().then(() => {
  33. createWindow()
  34. app.on('activate', function () {
  35. if (BrowserWindow.getAllWindows().length === 0) createWindow()
  36. })
  37. })
  38. app.on('window-all-closed', function () {
  39. if (process.platform !== 'darwin') app.quit()
  40. })