[随笔]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()
  }
  
目录
相关文章
|
6月前
【最全最详细】publiccms常用的代码片段
【最全最详细】publiccms常用的代码片段
|
6月前
【整理】【精华】【实用】常用代码片段(三)
【整理】【精华】【实用】常用代码片段
|
6月前
【整理】【精华】【实用】常用代码片段(二)
【整理】【精华】【实用】常用代码片段
|
6月前
【整理】【精华】【实用】常用代码片段(一)
【整理】【精华】【实用】常用代码片段
|
JavaScript
第二章 网页基本代码
本章将会学习网页的基本代码了解使用。
67 1
第二章 网页基本代码
|
移动开发 前端开发 JavaScript
Web前端开发笔记——第二章 HTML语言 第九节 框架标签、脚本标签
Web前端开发笔记——第二章 HTML语言 第九节 框架标签、脚本标签
Web前端开发笔记——第二章 HTML语言 第九节 框架标签、脚本标签
C#Razor小笔记和某些细节
C#Razor小笔记和某些细节
130 0
|
JavaScript 前端开发 算法
每天学习使用代码片段(八)
在项目开发过程中,总觉得有更好的方式来组织代码,通过代码片段,间接的学习一些代码组织技巧。阅读开源代码,是开阔编码思维最快捷的方式,如果觉得内容能够带来点帮助,可以查看专栏《碎片时间学习JavaScript代码》其他内容,又或者有用到的需求片段,不妨在留言区留言。
149 0
关于Markdown编辑器的一些简单使用语法
关于Markdown编辑器的一些简单使用语法 Markdown编辑器的日常使用其实还是比较方便的,语法也不会过于复杂。在Markdown编辑器中,常用的标记符号不超过10个,只需要少量的时间就可以轻松掌握。 创建标题 标题是文章中最常用的格式之一,在Markdown编辑器中,如果我们想创建一个标题,只需要输入符号#,在符号#之后空一格然后输入标题名称。Markdown编辑器最多支撑到6级标题,符号#的数量就是对应标题的等级。
99 0
|
编译器 C语言 数据安全/隐私保护
C++day12笔记无代码
C++day12笔记
332 0