如何在Electron的同一应用中关闭框架并打开其他框架?

时间:2019-05-02 07:23:40

标签: javascript node.js reactjs electron

我正在尝试在Electron中创建一个应用程序,其中的主要代码“ main.js”采用了第一个窗口打开(搜索窗口)的程序流程,当您单击它时,该第一个窗口必须关闭并打开另一个第二个窗口(主窗口)。

我试图强制打开主窗口,然后打开,然后立即关闭。

主要代码:main.js是:

const {app, BrowserWindow, ipcMain} = require('electron')
const searchwindow = require('./searchwindow.js');
const mainwindow = require('./mainwindow.js');

var Device = require('./Device.js');
var stateMachine = async () => {    
    var deviceString = await searchwindow.open()
    global.device = new Device(deviceString)      
    await mainwindow.open()
    app.quit()   
}  

mainwindow.js是:

const {BrowserWindow, ipcMain} = require('electron')
const url = require('url')
const path = require('path')

exports.open = () => {
var mainWin = new BrowserWindow(windowsConfig)
mainWin.setMenu(null); // disable the default menubar

const startUrl = process.env.ELECTRON_START_URL || url.format({
        pathname: path.join(__dirname, 'mainwindow/build/index.html'),
        protocol: 'file:',
        slashes: true
    });

console.log(startUrl)

mainWin.loadURL(startUrl);

return new Promise(((resolve, reject) => { 

    mainWin.webContents.on('did-finish-load', () => {
        mainWin.show();
        console.log(mainWin.isVisible())
         //Open the DevTools.
         mainWin.webContents.openDevTools()
        ipcMain.once('exit', (event, arg) => {
            mainWin.close()
            resolve(arg)
        })

        mainWin.on('closed', () => {                       
            mainWin = null                
        })
    });
    }))

我的怀疑是第二个窗口没有打开,也没有预加载。 如何获得所需的功能?

0 个答案:

没有答案