从 electron-vue 中的菜单项访问浏览器窗口



我正在尝试添加一个菜单项,它将加载设置窗口 vue 组件的 url。我按照这个创建了我的菜单。

问题是我如何让单击此处访问我的createWindow((方法中的方法,我可以在其中触发浏览器窗口的加载以设置文件。

我试图添加一个尝试访问createWindow((中的功能的点击侦听器,但没有运气

主菜单.js

const {Menu} = require('electron')
const electron = require('electron')
const app = electron.app
const template = [
  {
    label: 'Custom',
    submenu: [
      {
        label: 'Setting',
        click (item, focusedWindow) {
          loadSettingWindow()
        }
      }
    ]
  }
]
const menu = Menu.buildFromTemplate(template)
Menu.setApplicationMenu(menu)

索引.js

'use strict'
import { app, BrowserWindow } from 'electron'
let mainWindow
let serviceWindow
const winURL = process.env.NODE_ENV === 'development'
  ? `http://localhost:9080`
  : `file://${__dirname}/index.html`
function createWindow () {
  /**
   * Initial window options
   */
  mainWindow = new BrowserWindow({
    height: 563,
    useContentSize: true,
    width: 1000
  })
  mainWindow.loadURL(winURL)
  mainWindow.on('closed', () => {
    mainWindow = null
  })
  function loadSettingWindow () {
    console.log('trigger setting window here')
  }
  require('./mainmenu')
}
app.on('ready', createWindow)
app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') {
    app.quit()
  }
})
app.on('activate', () => {
  if (mainWindow === null) {
    createWindow()
  }
})

我预计点击事件将调用触发器函数loadSettingWindow但它似乎无法访问它。

您无法将访问从主进程定向到渲染器进程。但是你可以使用 IPC 将消息发送到渲染进程,并在 Vuejs 存在的地方处理它。

最新更新