在单独的.js文件中的Electron中创建新视图

时间:2019-07-08 15:14:39

标签: javascript electron

我想从一个单独的Javascript文件创建一个新视图。

可能还会出现不必要的代码,您可以随意为我指出。

这是我的第一个项目,因此您可以认为这是关于Javascript模块的菜鸟问题。

以前,当将代码放置在main.js文件中时,它就可以工作,但是我不知道如何使其在单独的文件中工作。

//main.js

var app = require('electron').app
var BrowserWindow = require('electron').BrowserWindow
var BrowserView = require('electron').BrowserView
const path = require('path')
const url = require('url')

let win
let view

function createWindow () {
    win = new BrowserWindow({
        width: 1200,
        height: 800,
        frame: false,
        webPreferences: {
          nodeIntegration: true
        }
    })
    win.loadURL(url.format({
        pathname: path.join(__dirname, 'index.html'),
        protocol: 'file',
        slashes: true
    }))

    win.on('closed', function () {
        win = null
    })

    win.webContents.openDevTools({mode:'undocked'})
}

app.on('ready', createWindow, createView)

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

  app.on('activate', function () {
     if (win === null) {
      createWindow()
    }
  })



//view.js

const { remote, ipcRenderer } = require('electron')

var win = remote.getCurrentWindow();

let view


let createView = function() {
view = new BrowserView()
win.setBrowserView(view)
view.setBounds({
  x: 0,
  y: 30,
  width: win.getContentBounds()['width'],
  height: win.getContentBounds()['height'] - 30
})
view.webContents.loadURL('https://ose-e837e8.webflow.io/')
}

我要做的是:

  • 在main.js文件中创建一个窗口(此方法有效)

  • 通过从单独的文件调用函数来打开新视图(这不起作用)

这是我遇到的错误,但是我觉得这可能不是我的代码的唯一问题。

Uncaught ReferenceError: createView is not defined
    at Object.<anonymous> (C:\Users\emilh\Github\Chromia\renderer.js:37)
    at Object.<anonymous> (C:\Users\emilh\Github\Chromia\renderer.js:38)
    at Module._compile (internal/modules/cjs/loader.js:815)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:827)
    at Module.load (internal/modules/cjs/loader.js:677)
    at tryModuleLoad (internal/modules/cjs/loader.js:609)
    at Function.Module._load (internal/modules/cjs/loader.js:601)
    at Module.require (internal/modules/cjs/loader.js:715)
    at require (internal/modules/cjs/helpers.js:14)
    at index.html:42

0 个答案:

没有答案