我想从另一个 html 带有按钮的页面关闭电子应用程序
I want close electron app from another html page with button
我们目前正在使用 electronjs 改进一个项目:如您所知,我们有 main.js 用于 electron,我们还有另一个 html 页面,其中包含 javascripts 代码。我们在此 html 页面中创建了一个关闭按钮,此按钮应关闭该应用程序,但我们无法到达 main.js 以关闭该应用程序。你能帮帮我吗?
此代码来自 html 页面:
<div class="background-three link-container">
<button class="link-three" onclick="kapat()" id="kptbtn">Kapat</button>
</div>
<script>
function kapat(){
//what should I write here.
}
</script>
还有这个main.js
const { app, BrowserWindow } = require('electron')
const path = require('path')
function createWindow() {
const win = new BrowserWindow({
transparent: true,
frame: false,
resizable: false,
width: 500,
height: 700,
webPreferences: {
preload: path.join(__dirname, 'preload.js')
}
})
win.loadFile('girisEkrani.html')
}
app.whenReady().then(() => {
createWindow()
app.on('activate', () => {
if (BrowserWindow.getAllWindows().length === 0) {
createWindow()
}
})
})
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit()
}
})
您必须使用 ipcMain
和 ipcRenderer
。 Main 读取消息,Renderer 发送消息。
.html page
<script>
function kapat() {
const { ipcRenderer } = require('electron')
const ipc = ipcRenderer;
ipc.send('kapat');
}
...
</script>
如果您在函数之外定义 ipc 内容,它将不起作用并影响其他函数。
main.js
const { app, BrowserWindow, ipcMain } = require('electron')
const path = require('path')
const ipc = ipcMain;
function createWindow() {
const win = new BrowserWindow({
transparent: true,
frame: false,
resizable: false,
width: 500,
height: 700,
webPreferences: {
nodeIntegration: true,
contextIsolation: false,
}
})
ipc.on('kapat', () => { win.close() })
win.loadFile('girisEkrani.html')
}
我们目前正在使用 electronjs 改进一个项目:如您所知,我们有 main.js 用于 electron,我们还有另一个 html 页面,其中包含 javascripts 代码。我们在此 html 页面中创建了一个关闭按钮,此按钮应关闭该应用程序,但我们无法到达 main.js 以关闭该应用程序。你能帮帮我吗?
此代码来自 html 页面:
<div class="background-three link-container">
<button class="link-three" onclick="kapat()" id="kptbtn">Kapat</button>
</div>
<script>
function kapat(){
//what should I write here.
}
</script>
还有这个main.js
const { app, BrowserWindow } = require('electron')
const path = require('path')
function createWindow() {
const win = new BrowserWindow({
transparent: true,
frame: false,
resizable: false,
width: 500,
height: 700,
webPreferences: {
preload: path.join(__dirname, 'preload.js')
}
})
win.loadFile('girisEkrani.html')
}
app.whenReady().then(() => {
createWindow()
app.on('activate', () => {
if (BrowserWindow.getAllWindows().length === 0) {
createWindow()
}
})
})
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit()
}
})
您必须使用 ipcMain
和 ipcRenderer
。 Main 读取消息,Renderer 发送消息。
.html page
<script>
function kapat() {
const { ipcRenderer } = require('electron')
const ipc = ipcRenderer;
ipc.send('kapat');
}
...
</script>
如果您在函数之外定义 ipc 内容,它将不起作用并影响其他函数。
main.js
const { app, BrowserWindow, ipcMain } = require('electron')
const path = require('path')
const ipc = ipcMain;
function createWindow() {
const win = new BrowserWindow({
transparent: true,
frame: false,
resizable: false,
width: 500,
height: 700,
webPreferences: {
nodeIntegration: true,
contextIsolation: false,
}
})
ipc.on('kapat', () => { win.close() })
win.loadFile('girisEkrani.html')
}