关于Vue+electron,通过contextBridge暴露的内容,window调用为undefined问题。

背景:

        最近在搞electron+vue项目,有几个业务需要用到vue和Electron通信,于是打开了electron官网,跟着敲代码,但是用到contextBridge去暴露electron的时候,在控制台调用window.electron一直为undefined。

        找问题找了一天,几近崩溃,最后发现是因为一个属性的设置。简单记录一下。

解决:

win = new BrowserWindow({
    width: 800,
    height: 600,
    webSecurity: true, // 允许加载本地文件
    webPreferences: {
      preload: path.join(__dirname, "preload.js"),
      nodeIntegration: false,
      contextIsolation: false,  //问题所在!!!!!
    },
  })

  把contextIsolation设置为true,问题就解决了。

当contextIsolation 属性是false的时候一直会报错这个。需要改为true。

下面是我的所有配置:

vue.config.js

const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  lintOnSave: false,
  transpileDependencies: true,
  //添加electron集成,开启node功能
  pluginOptions: {
    electronBuilder: {
      preload: "src/preload.js",
    },
  }
})

preload.js

import { contextBridge, ipcRenderer } from "electron";

contextBridge.exposeInMainWorld("electron", {
    ipcRenderer,
});

具体原因可查看electron官网。。(个人感觉electron官网写的很垃圾,很不友好)

还是自己百度搜吧。

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: VueElectron是一个基于Vue.jsElectron的框架,它可以帮助开发人员快速构建跨平台的桌面应用程序。Vue.js是一个流行的JavaScript框架,用于构建交互式Web界面,而Electron是一个基于Chromium和Node.js的框架,可以将Web技术用于桌面应用程序的开发。使用VueElectron可以使开发人员更轻松地开发功能丰富的桌面应用程序,并且可以同时支持Windows,Mac和Linux等多个平台。 ### 回答2: Vue Electron是一个基于Vue.jsElectron的框架,用于开发跨平台的桌面应用程序。Vue.js是一个流行的JavaScript框架,用于构建用户界面,而Electron是一个允许使用JavaScript、HTML和CSS开发桌面程序的开源框架。 Vue Electron的主要优点是它将Web开发和桌面应用程序开发结合在一起。开发者可以使用Vue.js的灵活性和易用性来构建用户界面,然后使用Electron将应用程序打包成可在Windows、macOS和Linux等平台上运行的桌面应用程序。 使用Vue Electron,可以利用丰富的Vue生态系统,包括Vue Router和Vuex等插件。开发者可以使用这些插件来管理应用程序的路由和状态,从而更容易地构建复杂的桌面应用程序。 此外,Vue Electron还提供了一些工具和技术,使开发桌面应用程序更加方便。例如,开发者可以使用Electron Builder来快速构建和打包应用程序,也可以使用Electron Debug工具来调试应用程序。另外,还有一些社区提供的插件,用于添加桌面通知、系统托盘和本地文件访问等功能。 总的来说,Vue Electron是一个强大而灵活的框架,可以让开发者使用Vue.js来构建出色的用户界面,并使用Electron将应用程序打包成跨平台的桌面应用程序。通过结合VueElectron的优势,Vue Electron能够帮助开发者更轻松地开发出功能丰富、易于维护的桌面应用程序。 ### 回答3: Vue Electron是一种结合了Vue.jsElectron框架的开发工具,用于创建跨平台的桌面应用程序。Vue.js是一种流行的JavaScript框架,用于开发现代的单页面应用程序。而Electron是一个开源的框架,可以利用前端技术(HTML、CSS和JavaScript)来构建跨平台的桌面应用程序。Vue Electron将这两种技术结合在一起,提供了一个强大的工具,使开发者能够轻松地使用Vue.js构建用户界面,并通过Electron将其打包为可在不同操作系统上运行的应用程序。 使用Vue Electron可以带来许多优势。首先,Vue.js的简洁语法和响应式数据绑定功能使得构建复杂的用户界面变得简单和高效。而Electron的跨平台特性则允许开发者使用相同的代码库创建可以同时运行在Windows、Mac和Linux等操作系统上的应用程序。 另外,Vue Electron还提供了许多工具和插件,使得开发过程更加便捷,例如vue-cli-plugin-electron-builder插件可以帮助开发者轻松地将Vue.js应用打包成可执行文件,并自动生成安装程序。此外,还有一些其他的插件可以帮助开发者实现一些高级功能,比如与本地文件系统的交互、系统托盘功能等。 总之,Vue Electron是一个非常强大的开发工具,它将Vue.jsElectron框架结合在一起,提供了一种便捷的方式来创建跨平台的桌面应用程序。无论你是前端开发者还是想要创建一个漂亮、高效的跨平台应用程序的个人或企业,Vue Electron都是一个值得考虑的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值