在 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 按钮)。
我在加载文件的程序中实现了触摸栏按钮。我的问题是:当我按下触摸栏按钮时,如何在该页面加载后单击网站上的特定按钮?这是我的 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 按钮)。