electron-screenshots
electron 截图插件
Install
![NPM](https://nodei.co/npm/electron-screenshots.png?downloads=true&downloadRank=true&stars=true)
Usage
import debug from 'electron-debug'
import { app, globalShortcut } from 'electron'
import Screenshots from './screenshots'
app.on('ready', () => {
const screenshots = new Screenshots()
globalShortcut.register('ctrl+shift+a', () => screenshots.startCapture())
screenshots.on('ok', (e, { viewer }) => {
console.log('capture', viewer)
})
screenshots.on('cancel', () => {
console.log('capture', 'cancel1')
})
screenshots.on('cancel', e => {
e.preventDefault()
console.log('capture', 'cancel2')
})
screenshots.on('save', (e, { viewer }) => {
console.log('capture', viewer)
})
debug({ showDevTools: true, devToolsMode: 'undocked' })
})
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit()
}
})
注意
- 如果使用了 webpack 打包主进程,请在主进程 webpack 配置中修改如下配置,否则可能会出现不能调用截图窗口的情况
{
externals: {
'electron-screenshots': 'require("electron-screenshots")'
}
}
module.exports = {
publicPath: '.',
pluginOptions: {
electronBuilder: {
externals: ['shortcut-capture']
}
}
}
Methods
名称 | 说明 | 参数 | 返回值 |
---|
startCapture | 调用截图方法截图 | - | - |
endCapture | 手动结束截图 | - | - |
Events
interface Bounds {
x1: number
y1: number
x2: number
y2: number
}
interface CaptureData {
dataURL: string
bounds: Bounds
}
type OkData = CaptureData
type SaveData = CaptureData
名称 | 说明 | 回调参数 |
---|
ok | 截图确认事件 | event :事件对象, data:OkData : 截图信息 |
cancel | 截图取消事件 | event :事件对象 |
save | 截图保存事件 | event :事件对象,data:OkData : 截图信息 |
event
对象可调用preventDefault
方法来阻止默认事件,例如阻止默认保存事件
const screenshots = new Screenshots()
screenshots.on('save', (e, data) => {
e.preventDefault()
console.log('capture', data)
})
screenshots.startCapture()
Screenshot
![screenshot](https://raw.githubusercontent.com/nashaofu/screenshots/master/packages/electron-screenshots/screenshot.jpg)