[随笔]Electorn 代码片段

简介: [随笔]Electorn 代码片段
// Tray
function createTray () {
  const menubarPic = process.platform === 'darwin' ? `${__static}/menubar.png` : `${__static}/menubar-nodarwin.png`
  tray = new Tray(menubarPic)
  const contextMenu = // ...菜单
  tray.on('right-click', () => { // 右键点击
    window.hide() // 隐藏小窗口
    tray.popUpContextMenu(contextMenu) // 打开菜单
    })
    tray.on('click', () => { // 左键点击
      if (process.platform === 'darwin') { // 如果是 macOS
        toggleWindow() // 打开或关闭小窗口
      } else { // 如果是 windows
        window.hide() // 隐藏小窗口
      if (settingWindow === null) { // 如果主窗口不存在就创建一个
        createSettingWindow()
        settingWindow.show()
      } else { // 如果主窗口在,就显示并激活
          settingWindow.show()
          settingWindow.focus()
        }
      }
    })
  }
  // 鼠标左键点击事件
  // 在 macOS 系统下,鼠标左键点击 Tray 的 icon 可能会出现配置菜单,也有可能会出现应用窗口。
  // 在 windows 下,鼠标左键点击 Tray 的 icon 通常会出现应用的窗口。
  // 鼠标右键点击事件
  // 在 macOS 系统下,鼠标右键点击 Tray 的 icon 通常会出现配置菜单。
  // 在 windows 系统下,同上。
  
  // 拖拽
  // titleBarStyle: 'hidden',
  // -webkit-app-region: drag;
  // user-select: none;
  // .fake-title-bar {
  // -webkit-app-region drag
  // }
  // .handle-bar {
  // -webkit-app-region no-drag
  // }

  // mixin
  export default {
    mounted () {
  t  his.disableDragEvent()
  },
  methods: {
    disableDragEvent () {
      window.addEventListener('dragenter', this.disableDrag, false)
      window.addEventListener('dragover', this.disableDrag)
      window.addEventListener('drop', this.disableDrag)
    },
  disableDrag (e) {
    const dropzone = document.getElementById('upload-area') // 这个是可拖拽的上传区
      if (dropzone === null || !dropzone.contains(e.target)) {
      e.preventDefault()
      e.dataTransfer.effectAllowed = 'none'
       e.dataTransfer.dropEffect = 'none'
      }
     }
  },
  beforeDestroy () {
    window.removeEventListener('dragenter', this.disableDrag, false)
    window.removeEventListener('dragover', this.disableDrag)
    window.removeEventListener('drop', this.disableDrag)
    }
  }
  
  // remote
  this.$electron.remote.xxx
  
  // shell
  this.$electron.remote.shell.openExternal('https://github.com/Molunerfinn/PicGo')
  
  // dialog
  openDialog () {
  this.$electron.remote.dialog.showMessageBox({
      title: 'PicGo',
      message: 'PicGo',
      detail: `Version: ${pkg.version}\nAuthor: Molunerfinn\nGithub: https://github.com/Molunerfinn/PicGo`
    })
  }
  
  if (!process.env.IS_WEB) Vue.use(require('vue-electron'))
  
  聊天编辑器光标处插入表情
  
  // 微信截图 dll
  function handleCaptureScreen() {
    return new Promise((resolve) => {
      const { execFile } = require('child_process')
      var screenWin = execFile('./static/PrintScr.exe')
      screenWin.on('exit', function(code) {
        let pngs = require('electron').clipboard.readImage().toPNG()
        let imgData = new Buffer.from(pngs, 'base64')
        let imgs = 'data:image/png;base64,' + btoa(new Uint8Array(imgData).reduce((data, byte) => data + String.fromCharCode(byte), ''))
        resolve(imgs)
      })
    })
  }
  
  // 自定义最大最小化窗口
  function minimizeWindow () {
  const window = BrowserWindow.getFocusedWindow()
  window.minimize()
  }
  function closeWindow () {
  const window = BrowserWindow.getFocusedWindow()
  window.close()
  }
  
目录
相关文章
|
数据采集 移动开发 前端开发
如何使用JavaScript实现前端导入和导出excel文件(H5编辑器实战复盘)
最近笔者终于把H5-Dooring的后台管理系统初步搭建完成, 有了初步的数据采集和数据分析能力, 接下来我们就复盘一下其中涉及的几个知识点,并一一阐述其在Dooring H5可视化编辑器中的解决方案. 笔者将分成3篇文章来复盘, 主要解决场景如下
808 0
|
7月前
【最全最详细】publiccms常用的代码片段
【最全最详细】publiccms常用的代码片段
|
设计模式 JavaScript 前端开发
|
JavaScript
第二章 网页基本代码
本章将会学习网页的基本代码了解使用。
69 1
第二章 网页基本代码
C#Razor小笔记和某些细节
C#Razor小笔记和某些细节
134 0
|
人工智能 JavaScript 前端开发
开发常用代码笔记
开发常用代码笔记
开发常用代码笔记
|
JavaScript 前端开发 算法
每天学习使用代码片段(八)
在项目开发过程中,总觉得有更好的方式来组织代码,通过代码片段,间接的学习一些代码组织技巧。阅读开源代码,是开阔编码思维最快捷的方式,如果觉得内容能够带来点帮助,可以查看专栏《碎片时间学习JavaScript代码》其他内容,又或者有用到的需求片段,不妨在留言区留言。
151 0
关于Markdown编辑器的一些简单使用语法
关于Markdown编辑器的一些简单使用语法 Markdown编辑器的日常使用其实还是比较方便的,语法也不会过于复杂。在Markdown编辑器中,常用的标记符号不超过10个,只需要少量的时间就可以轻松掌握。 创建标题 标题是文章中最常用的格式之一,在Markdown编辑器中,如果我们想创建一个标题,只需要输入符号#,在符号#之后空一格然后输入标题名称。Markdown编辑器最多支撑到6级标题,符号#的数量就是对应标题的等级。
103 0
|
编译器 C语言 数据安全/隐私保护
C++day12笔记无代码
C++day12笔记
335 0
|
前端开发 Java 数据库连接
阅读《不止代码》之心得分享
阅读链接为:https://102.alibaba.com/downloadFile.do?file=1530517140411/Codelife.pdf 强烈推荐读一读 我大致浏览过一遍+重新选了几篇文章细看了一遍,有如下体会。
2122 0