【electron+vue】electron-vue-template使用笔记

文档

electron文档
electron-vue-template文档

实现主进程和渲染进程通信

Electron 提供了两个模块:ipcMain 和 ipcRenderer

//frontend\src\main\services\ipcMain.js
import { ipcMain, dialog, BrowserWindow } from 'electron'
export default {
  Mainfunc(IsUseSysTitle) {
    const allUpdater = new Update();
     // 监听从渲染进程发送过来的消息 也可以使用on
  	ipcMain.handle('message-from-renderer', (event, arg) => {
	    console.log(arg) // 输出 "Hello from renderer!"
	    
	    // 向渲染进程发送回复消息
	    event.reply('reply-from-main', 'Hello from main!')
	  })
  }
}
//在vue文件
<script>
import { ipcRenderer, shell } from 'electron'
 // 向主进程发送消息
      ipcRenderer.send('message-from-renderer', 'Hello from renderer!')

      // 监听从主进程发送过来的回复消息
      ipcRenderer.on('reply-from-main', (event, arg) => {
        console.log(arg) // 输出 "Hello from main!"
      })
</script>

从渲染器进程打开一个原生的文件对话框,并返回所选文件的路径

使用dialog来实现弹窗,需要注意dialog只能在主进程中使用
参数包括:

  • title : String (可选),对话框的标题
  • defaultPath : String (可选),默认打开的路径
  • buttonLabel : String (可选), 确认按钮的自定义标签,当为空时,将使用默认标签
  • filters : 文件选择过滤器,定义后可以对文件扩展名进行筛选
  • properties:打开文件的属性,比如打开文件还是打开文件夹,甚至是隐藏文件
//frontend\src\main\services\ipcMain.js
import { ipcMain, dialog, BrowserWindow } from 'electron'
async function handleFileOpen (arg) {
    const { canceled, filePaths } = await dialog.showOpenDialog({
        //多选
        // properties: ['openFile', 'multiSelections'],
        filters: [
            { name: arg, extensions: ['pdf'] }
        ]
      })
    if (canceled) {
  
    } else {
      return filePaths
    }
  }
export default {
  Mainfunc(IsUseSysTitle) {
    const allUpdater = new Update();
    ipcMain.handle('dialog:openFile', (event, args) =>handleFileOpen(args.arg))
  }
}

可以使用 filters 属性来指定对话框中可见的文件类型。要允许多个文件类型,则可以指定多个过滤器对象。
注意,extensions 属性应仅包含文件扩展名而不带点号。name 属性是可选的,提供它有助于用户理解他们正在选择的文件类型。

//在vue文件
ipcRenderer
   .invoke('dialog:openFile', { arg: this.type })
     .then((res) => {
         this.path = res
         console.log(res)
     })
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值