当前位置: 首页 > news >正文

东营建设信息网的网址安卓优化大师官网下载

东营建设信息网的网址,安卓优化大师官网下载,网站后台改版面,wordpress变慢开发中遇到Electron自定义窗口的问题 使用VUE3 Electron 开发一个音乐软件,自定义导航栏的放大、缩小和关闭。 其中使用ipcRenderer进行联系Electron,进行放大、缩小和关闭操作。 遇到问题 遇到__dirname is not defined in ES module scope //在V…

开发中遇到Electron自定义窗口的问题

使用VUE3 + Electron 开发一个音乐软件,自定义导航栏的放大、缩小和关闭。

其中使用ipcRenderer进行联系Electron,进行放大、缩小和关闭操作。

遇到问题

遇到__dirname is not defined in ES module scope

//在VUE文件中使用
import  ipcRenderer from 'electron';// 会爆出__dirname is not defined in ES module scope的问题
// 原因是__dirname是commonjs规范的内置变量;esm不会注入这个变量
// 解决:删除package.json中的 type:"moudle"

遇到mainWindow is not Defined 和重置窗口没有变化

// 原因:以下代码放置的位置原因,放在了mainWindow作用域外
// 切换全屏事件
ipcMain.on('toggle-full-screen', function() {if (mainWindow.isMaximized()) {// 之前使用的是 mainWindow.restore();mainWindow.unmaximize();} else {mainWindow.maximize();}
});// 最小化窗口事件
ipcMain.on('minimum', function() {mainWindow.minimize();
});

解决方案

electron.js 设置

electron.js : package.json指定的"main": "electron.js "

const { app,ipcMain , BrowserWindow } = require('electron')
const path = require("path")const createWindow = () => {const mainWindow = new BrowserWindow({width: 1200,height: 700,minWidth: 1200,minHeight: 700,frame: false,transparent: true,resizable: false,webPreferences:{nodeIntegration: true, // 是否允许在页面中使用节点js 通信需要contextIsolation: true, // 不启用上下文隔离 通信需要enableRemoteModule: true, // 允许使用 remote 模块preload:path.join(__dirname, 'preload.js'),}})mainWindow.loadURL("http://localhost:5173/");// 下面两个事件需要在createWindow内,在外面会报mainWindow is not definedipcMain.on('toggle-full-screen', function() {  // 切换全屏事件if (mainWindow.isMaximized()) {mainWindow.unmaximize();} else {mainWindow.maximize();}});ipcMain.on('minimum', function() {  // 最小化窗口事件mainWindow.minimize();});
}app.whenReady().then(() => { // 在应用准备就绪时调用函数createWindow()
})
ipcMain.on('closeProgram', () => { // 关闭程序app.quit();
});

新建 preload.js

const { contextBridge, ipcRenderer } = require('electron')contextBridge.exposeInMainWorld('ipcRenderer', {send: (channel, data) => {let validChannels = ['toggle-full-screen','minimum','closeProgram'] // 配置合法消息名if (validChannels.includes(channel)) {ipcRenderer.send(channel, data)}},receive: (channel, func) => {let validChannels = ['toggle-full-screen','minimum','closeProgram']// 配置合法监听事件名称if (validChannels.includes(channel)) {ipcRenderer.on(channel, (event, ...args) => func(...args))}}
})alert('1')//没弹窗就是失败了 成功后删除

VUE文件中使用

<script>
export default {methods: {minimizeWin(){ // 通知主进程我要进行窗口最小化操作window.ipcRenderer.send('minimum','');// console.log('minimizeWin');},maximizeWin(){  // 通知主进程我要进行窗口最大化操作window.ipcRenderer.send('toggle-full-screen','');// console.log('maximizeWin');},closeWin(){  // 通知主进程我要进行窗口关闭操作//返回一个所有已经打开了窗口的对象数组window.ipcRenderer.send('closeProgram','');// console.log('closeWin');}}
}
</script><template><el-row class="row-head" ><!-- 最小化 --><el-button type="button" class="btn btn-primary" id="minimizeWin" @click="minimizeWin"   style="height: 40px; width: 20%;"></el-button><!-- 最大化 --><el-button type="button" class="btn btn-primary" id="maximizeWin" @click="maximizeWin"  style="height: 40px; width: 20%;"></el-button><!-- 关闭 --><el-button type="button" class="" id="closeWin" @click="closeWin"  style="height: 40px;width: 20%;"></el-button></el-row>
</template>

参考

vite+vue3+electron踩坑记录ipcRenderer通信,vue-router打包白屏问题

http://www.yayakq.cn/news/662480/

相关文章:

  • 知名做网站价格单页面网站怎么做
  • 同江佳木斯网站设计南宁百度网站公司电话
  • 淘宝客建设网站专做婚纱店设计网站
  • 建门户网站哪家最好南阳做网站电话
  • 在哪个网站去租地方做收废站企业网站app开发平台
  • 珠海网站建设尚古道策略中国联通与腾讯设立
  • 会做网站有什么可以做吗网站模版源代码
  • 网站品牌推广1688官网下载
  • 万网建设网站教程英国做电商网站有哪些方面
  • 七彩建设集团官方网站东莞网站制作有名 乐云践新
  • 网站能当做创业来做吗地方门户网站的分类
  • 成都大型网站设计公司怎么用joomla做网站
  • 一手房发帖网站怎样做做网站后要回源码有何用
  • 宁波网站搭建公司定制企业网络安全
  • 电子产品商务网站模板北京网站建设 shwl
  • 建设厅网站用户名和密码西湖区建设局网站
  • 800元做网站网站建设属什么费用
  • 网站外接深圳电器公司招聘
  • 自己做的网站字体变成方框wordpress 目录
  • 源码网站代理图片做网站连接
  • 应聘网站建设工程师芜湖商城网站建设
  • 做公众号可以看的网站电子政务 和网站建设总结
  • 装修公司资质查询官方网站唐山专业网站建设
  • 做赚钱问卷调查的网站好现在的网站开发方式
  • 有空间站的国家九江专业网站建设
  • 三墩网站建设确定网站建设目标
  • 武清做网站企业网站模板源码有哪些
  • 网站建设服务商城美食网页设计素材
  • 可以做很多个网站然后哭推广wordpress主题无法显示
  • 有什么网站招聘做危险高薪工作的百度上做网站模板