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

会泽做网站制作物流网站

会泽做网站,制作物流网站,莱芜都市网官网,建站之星 网站排名使用electron-vue获取文件夹的路径 记录一次开发过程中遇到的bug,我们的项目中需要将vue项目打包为桌面应用软件,为此我们引入了electron框架,在这个过程中,我们需要获取到用户电脑上面文件夹的绝对路径,用这篇文章记…

使用electron-vue获取文件夹的路径

  • 记录一次开发过程中遇到的bug,我们的项目中需要将vue项目打包为桌面应用软件,为此我们引入了electron框架,在这个过程中,我们需要获取到用户电脑上面文件夹的绝对路径,用这篇文章记录一下

修改方式

  • 修改vue.config.js
    • 在 vue.config.js 中开启了 Electron 集成,这允许你在 Electron 进程中使用 Node.js 功能。
pluginOptions: {electronBuilder: {nodeIntegration: true,contextIsolation: false,}}
  • 在background.js添加以下内容
    • 导入依赖
import {ipcMain,ipcRenderer,dialog} from "electron"

app.on('ready', async () => {if (isDevelopment && !process.env.IS_TEST) {// Install Vue Devtoolstry {await installExtension(VUEJS_DEVTOOLS)} catch (e) {console.error('Vue Devtools failed to install:', e.toString())}}createWindow()
// 新增:在主进程中处理打开文件对话框的请求ipcMain.handle("dialog:openFile",handleFileOpen)
})
// 新增:处理打开文件对话框的函数
async function handleFileOpen(){const options = {title: 'Select a Folder',properties: ['openDirectory']};const {canceled,filePaths}=await dialog.showOpenDialog(options)if (canceled){console.log(1)return}else {console.log(2,filePaths)return filePaths[0]}
}
  • 在vue页面中编写触发事件
    • 在 Vue 组件中,你使用 ipcRenderer 来触发打开文件对话框的操作:
<template><Button type="info" style="width: 100%" @click="handleSaveChart">保存</Button>
</template>
<script>import {ipcRenderer} from 'electron'export default {name: "DirPage",created() {// const ipc = require('electron').ipcRenderer;ipcRenderer.on('save-finished', function (event, filename) {// 当filename等于null的时候表示用户点击了取消按钮// 当用户点击保存按钮的时候filename的值是对应文件的绝对路径console.log(filename)})},methods: {//获取的文件名称handleSaveChart: function () {// 向IPC通道发送信号,此时主线程收到信号立即执行相对应的响应函数// const ipcRenderer = require('electron').ipcRenderer;const result = ipcRenderer.invoke('dialog:openFile');// if (!result.canceled && result.filePaths.length > 0) {result.then(res=>{console.log("file",res)})// 在这里可以使用 selectedFolder 的绝对路径进行后续操作// }}}
}
</script>
  • 总结
    • background.js 中的 ipcMain.handle:这个函数允许你在主进程中注册一个处理函数,当从渲染进程发送请求到主进程时,会调用这个处理函数并返回结果。在这里,我们注册了一个处理函数 handleFileOpen,用于打开文件对话框并返回选中的文件夹路径

    • Vue 组件中的 ipcRenderer.invoke:这个函数用于从渲染进程向主进程发送请求,并等待主进程的响应。在这里,你向主进程发送了打开文件对话框的请求,并使用 invoke 来等待主进程返回选中的文件夹路径。

    • 主线程就是:background.js文件

    • 渲染线程就是.vue文件

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

相关文章:

  • 咖啡网站建设的优势大团网站建设
  • 企业建设网站目的专业的聊城做网站费用
  • dedecms 营销网站模板免费下载wordpress 下载附件
  • 网站排名优化培训微信管理平台
  • 做网站需要几个岗位网站改域名
  • 网站建设富有成效wordpress点击图片
  • 智慧团建网站pc端网站后端开发软件
  • 网站建设的优点和缺点网站盈利模式
  • wordpress 视频站网站建设应列支什么科目
  • 手机网站app安卓应用开发系统
  • 做gif动态图网站百度竞价有点击无转化
  • 国外做蒸汽锅炉的网站百度网站收录删除
  • 什么叫营销型网站建设重庆建站程序
  • 简单网站首页怎么做网站开发常用的语言和工具
  • 黑色门户网站源码一个网站2级域名多
  • 保定网站建设方法深圳seo秘籍
  • 哪个网站可以学做包子网站 网页区别是什么
  • 广州网站订制开发wordpress语音朗读
  • 做资源分享网站怎么样响应式网站用什么单位
  • 石家庄网站建设规划傻瓜app制作开发
  • 本地网站可以做吗?广州商旅网站制作
  • 白城网站建设哪家好比较好的购物网站
  • 网站建设 代表联系群众海淀做网站的网络公司
  • 我在学校志愿队做网站的经历怎样选择网站建设公司
  • 如何用电脑主机做网站温州seo外包公司
  • 彩票网站制作福步外贸论坛找客户
  • vs中做网站怎么设置图片标准wordpress关键词排名
  • 石家庄网站关键词推广2014网站备案
  • wordpress做导航站wordpress免插件图床
  • 建设银行网站不能登录不了用asp做的大型网站