美文网首页
[随笔]Electorn 代码片段

[随笔]Electorn 代码片段

作者: 是ADI呀 | 来源:发表于2020-09-23 16:34 被阅读0次
    // 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()
      }
      
    

    相关文章

      网友评论

          本文标题:[随笔]Electorn 代码片段

          本文链接:https://www.haomeiwen.com/subject/kgsoyktx.html