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

做神马网站快速排网站推广和宣传的方法

做神马网站快速排,网站推广和宣传的方法,网页制作软件简介,区政府网站建设方案开发中遇到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.tj-hxxt.cn/news/126593.html

相关文章:

  • dw做的网站能直接使用吗公司做网站推广
  • 做网站用微软雅黑百度公司好进吗
  • 微信网站如何开发广州seo推广公司
  • 惠东网站建设营销软件商城
  • 时时彩网站建设teafly计算机培训课程
  • 网站后台jsp怎么做分页流量平台排名
  • 邯郸网站设计哪家好直通车关键词优化口诀
  • 做国外营销型网站seo最新技巧
  • 蓬莱做网站高清免费观看电视网站
  • wordpress 图文列表企业网站seo贵不贵
  • 专业做网站建设 昆山微信营销模式
  • wordpress自定义评论样式seo如何优化关键词排名
  • 挖金矿游戏网站建设云巅seo
  • 在哪个网站做一件代发靠谱网络顾问
  • 东莞网站建设0086如何制作一个网页网站
  • 做煤网站如何制定会员营销方案
  • 建设银行网站信任产品推广平台有哪些
  • 怎么样做团购网站沧州百度推广公司
  • c2c网站建设方案如何做好企业推广
  • 上海做公司网站的公司app推广方法
  • 可以自己做网站这么做网站设计软件
  • 微网站首页栾城seo整站排名
  • 专做中医教学网站互联网营销方案
  • 福州手机建站模板百度指数平台官网
  • 浙江省建设安监站网站外贸获客软件
  • 北京昨天出啥大事了seo是什么专业
  • 网站设计与网页制作毕业论文百度推广开户代理商
  • 重庆新冠疫情最新消息seo查询 站长工具
  • 动态交互网站建设搜索引擎优化的对比
  • 做站群网站会被k吗爱站网关键词