Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
electron-vue-windows2
Advanced tools
主要针对electron-vue做的插件,必在electron-vue的基础上使用,针对electron-vue中打开新的无边框窗口缓慢、传参困难等问题做的优化,安装方式简单、使用简单, 点击[这里](https://github.com/hxkuc/electron-ui)可以查看简单的demo - 说明:由于C++原生插件安装起来有一定的难度,为了更好的支持用户从1.0.39开始,默认的窗口高斯模糊效果为选装功能,@hxkuc/electron-vibrancy插件不再自动安装,如果需要开启vibra
主要针对electron-vue做的插件,必在electron-vue的基础上使用,针对electron-vue中打开新的无边框窗口缓慢、传参困难等问题做的优化,安装方式简单、使用简单, 点击这里可以查看简单的demo
首先安装electron-vue 然后安装此插件执行如下操作
npm i -S electron-vue-windows
在renderer/main.js里初始化加入以下代码(注意本插件依赖于vue和vue-router需要在vue和vue-router初始化完毕再加载)
import Vue from 'vue'
import router from './router' // 此处router文件为你的路由配置文件
import Win from 'electron-vue-windows'
// 初始化插件,要传入实例化的路由
Win.init(router, {
freeWindowNum: 2, // 初始空闲窗口数量(选填:默认为1)
port: 9080 // 端口号(选填:默认9080)
})
Vue.prototype.$Win = Win
index.vue
let data = await this.$Win.openWin({
// browserwindow原生属性
width: 700, // 窗口宽
height: 600, // 窗口高
// electron-vue-windows自定义的属性
windowConfig: {
router: '/user', // 路由 *必填
data: {id: 1}, // 传送数据
name: 'user' // 窗口名称
}
})
console.log(data) // 新窗口返回的数据 {value: 2}
user.vue
let data = this.$Win.getParameter()
console.log(data) // {id: 1}
let data = {value: 2}
this.$Win.closeWin(data)
// Install `electron-debug` with `devtron`
require('electron-debug')({ showDevTools: true }) // 把true改成false即可(在页面上按f12一样可以调出开发者工具)
由于使用了c++原生模块,所以在安装本插件时可能会遇到已下的问题,大概说下解决方案
1.没有安装python导致的报错 解决办法:安装python,具体方法可以参考node-gyp的文档 https://github.com/nodejs/node-gyp
解决办法: 安装electron-rebuild参考文档:https://electronjs.org/docs/tutorial/using-native-node-modules
解决方法:和第一个报错一样,如果还报错看看是不是没有设置环境变量,或者python版本不对引起的
解决办法: 使用electron-rebuild重新rebuild,npm install --save-dev electron-rebuild
然后.\node_modules\.bin\electron-rebuild.cmd
,具体可参考https://electronjs.org/docs/tutorial/using-native-node-modules
5.
解决办法: 网络原因,重新执行rebuild
在子进程中使用
option: {object}
BrowserWindow
实例option = {
// 以下为暂时支持的原生属性
width: '',
height: '',
minimizable: '',
maximizable: '',
resizable: '',
x: '',
y: '',
alwaysOnTop: '',
skipTaskbar: '',
// electron-vue-windows新增的属性
windowConfig: {
animation: '' // 窗口打开动画 (fromRight,fromLeft,fromTop,fromBottom)
customAnimation: {
fromPosition: {}, // 窗口动画起点
time: 1000, // 动画时间
graphs: '' // 动画过度曲线
}, // 选填 自定义动画,如果有此属性animation属性会失效
name: '', // 选填 窗口名称
router: '', // 必填 窗口路由
reuse: '', // 选填 是否复用窗口(如果选此选项使用closeWin方法不会销毁窗口,应该使用exitWin销毁窗口)
reload: '', // 是否重新加载窗口(指重新加载窗口路由)
vibrancy: '', // 选填 是否开启模糊透明(默认false)
vibrancyOptions:{
padding: 5, // 默认模糊窗口的padding用来留窗口阴影
borderRadius: 5, // 模糊窗口的圆角度数
}, // 选填
data: '', // 要发送的基础数据
fromWinId: '' // 来自id
}
}
// 创建窗口
let win = this.$Win.createWin({
width: 800,
height: 600,
windowConfig: {
router: '/index', // 路由
}
})
win.on('closed', () => {
win = null
})
win.show()
// 关闭窗口(注:最好调用electron-vue-windows的关闭api)
this.$Win.closeWin()
win.close() // 不推荐
创建模糊透明窗口(vibrancy属性设置为true)
let win = this.$Win.createWin({
width: 800,
height: 600,
windowConfig: {
router: '/index',
name: 'index', // 窗口名字,如果该name窗口存在会直接显示,不会重新创建
vibrancy: true
}
})
win.show()
创建窗口从左侧划入并发送数据
let win = this.$Win.createWin({
width: 800,
height: 600,
windowConfig: {
router: '/index',
name: 'index', // 窗口名字,如果该name窗口存在会直接显示,不会重新创建
animation: 'fromLeft',
data: {index: 1}
}
})
win.show()
自定义动画--创建一个窗口从左上角滑到中间
let win = this.$Win.createWin({
width: 800,
height: 600,
windowConfig: {
router: '/index',
name: 'index', // 窗口名字,如果该name窗口存在会直接显示,不会重新创建
customAnimation: {
fromPosition: {x: 0, y: 0}, // 窗口动画起点
time: 1000, // 动画时间
graphs: 'Quartic.InOut' // 动画过度曲线
},
data: {index: 1}
}
})
win.show()
动画曲线graphs
参考: http://tweenjs.github.io/tween.js/examples/03_graphs.html
option: {object}
同createWin
return {promise}
窗口回调过来的数据let data = await this.$Win.openWin({
// browserwindow原生属性
width: 700, // 窗口宽
height: 600, // 窗口高
// electron-vue-windows自定义的属性
windowConfig: {
router: '/user', // 路由 *必填
data: {id: 1}, // 传送数据
name: 'user' // 窗口名称
}
})
console.log(data) // 新窗口返回的数据 {value: 2}
user.vue
let data = this.$Win.getParameter()
console.log(data) // {id: 1}
let data = {value: 2}
this.$Win.closeWin(data)
data: {object}
let data = this.$Win.getParameter()
console.log(data) // {id: 1}
this.$Win.closeWin({value:1})
关闭name为'name'窗口
let win = this.$Win.getWinByName('name')
this.$Win.closeWin({value:1}, win)
FAQs
主要针对electron-vue做的插件,必在electron-vue的基础上使用,针对electron-vue中打开新的无边框窗口缓慢、传参困难等问题做的优化,安装方式简单、使用简单, 点击[这里](https://github.com/hxkuc/electron-ui)可以查看简单的demo - 说明:由于C++原生插件安装起来有一定的难度,为了更好的支持用户从1.0.39开始,默认的窗口高斯模糊效果为选装功能,@hxkuc/electron-vibrancy插件不再自动安装,如果需要开启vibra
The npm package electron-vue-windows2 receives a total of 1 weekly downloads. As such, electron-vue-windows2 popularity was classified as not popular.
We found that electron-vue-windows2 demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.