在 electron.js 中打开文件并点击触控栏中的按钮

Opening a file and clicking to a button from Touch Bar in electron.js

我在加载文件的程序中实现了触摸栏按钮。我的问题是:当我按下触摸栏按钮时,如何在该页面加载后单击网站上的特定按钮?这是我的 main.js 文件:

const { app, BrowserWindow, TouchBar } = require('electron')
const { TouchBarButton } = TouchBar
const path = require('path')

let window

function createWindow() {
    const win = new BrowserWindow({
        width: 1366,
        height: 758,
        minWidth: 1300,
        minHeight: 700,
        icon: __dirname + 'logoSquare.icns',
        webPreferences: {
            //preload: path.join(__dirname, 'preload.js')
        }
    })
    win.loadFile('login.html')
    win.maximize()
    return win
}

app.whenReady().then(() => {
    window = createWindow()

    const button = new TouchBarButton({
      label: ` Add Flight`,
      accessibilityLabel: 'Add Flight',
      backgroundColor: '#a20021',
      click: () => {
        window.loadFile('./flights.html')
      },
    });
    const touchBar = new TouchBar({
      items: [
        button,
      ],
    })

    window.setTouchBar(touchBar);

    app.on('activate', () => {
        if (BrowserWindow.getAllWindows().length === 0) {
            createWindow()
        }
    })
})

app.on('window-all-closed', () => {
    if (process.platform !== 'darwin') {
        app.quit()
    }
})

刚开始学习electron.js还没找到解决方法

我找到了解决此问题的替代方法。我发送了一个查询并通过 JavaScript 获得了该信息。这是负责发送查询的 main.js 文件:

const button = new TouchBarButton({
    label: ` Add Flight`,
    accessibilityLabel: 'Add Flight',
    backgroundColor: '#3a2e39',
    click: () => {
        //window.loadFile('./flights.html?addflight=1')
        window.loadURL('file://'+__dirname+'/flights.html?addflight=1')
    },
})

这是负责在 flights.html 文件中接收数据的代码 JavaScript:

function addFlightRedir() {
    if (location.search == '?addflight=1') {
        addNewFlight(); // This is the code that I wanted to execute
    }
}

addFlightRedir();

并且由于它可以与标准 JS 一起重用,现在我也可以将它实现到我程序的其他区域(独立于 Touch Bar 按钮)。