剪贴板


Clipboard是一个抽象的剪贴板 , 为Windows , Linux以及Mac系统中 .

概要

// 获取系统中剪贴板对象
var clipboard = nw.Clipboard.get();

// 剪贴板中读取信息
var text = clipboard.get('text');
console.log(text);

// 向剪贴板写入
clipboard.set('I love NW.js :)', 'text');

// 清空剪贴板
clipboard.clear();

Clipboard.get()

  • 返回{Clipboard}剪贴板对象

    X11不支持选择剪贴板 .

clip.set(data, [type, [raw]])

  • data {String} 写入剪贴板信息
  • type {String} 可选 支持text, png, jpeg, html以及rtf , 分别代表文本 , png图片 , jpeg图片 , html以及富文本 . 默认类型为文本 .
  • raw {Boolean} 可选 需要原始图片数据 . 该参数只使用类型为pngjpeg . 默认值为false .

将对应类型的数据写入剪贴板 . 该方法将清空剪贴板内容以及将data内容写入剪贴板 . 再次调用该方法会将新data内容替换到现有data内容中 . 同时写入不同类型的数据信息 , 需要使用clip.set(clipboardDataList) .

剪贴板读写图片内容支持JPEG或PNG类型 . `raw`属性不设置或者为`false` , `data`参数为有效的Base64编译的[URI](https://developer.mozilla.org/en-US/docs/Web/HTTP/data_URIs) . `raw`属性设置为`true` , `data`参数为Base64编译的图片数据 . 不包括`data:<mime-type>;base64,`部分 .

clip.set(clipboardData)

clip.set(clipboardDataList)

通过该方法将多种类型的数据写入剪贴板 .

例如: 写入类型为图片和<img>标签内容到剪贴板

var fs = require('fs');
var path = require('path');

// 使用绝对路径以便其他应用能够使用
var pngPath = path.resolve('nw.png');
// 读取图片文件并通过base64进行编码
var data = fs.readFileSync(pngPath).toString('base64');
// 变换文件路径为URL
var html = '<img src="file:///' + encodeURI(data.replace(/^\//, '')) + '">';

var clip = nw.Clipboard.get();
// 将两种类型数据写入剪贴板
clip.set([
  {type: 'png', data: data, raw: true},
  {type: 'html', data: html}
]);

clip.get([type, [raw]])

  • type {String} 可选 数据类型 . 支持text, png, jpeg, html and rtf. 默认类型为"test" .
  • raw {Boolean} 可选 需要原始图片数据 . 该参数只使用类型为pngjpeg .
  • Returns {String} 返回剪贴板中数据 .

从剪贴变中获取指定类型数据 .

clip.get(clipboardData)

  • clipboardData {Object} JSON对象 , 包括type, raw读取剪贴板信息格式 . 参考clip.get([type, [raw]])参数格式描述 .
  • Returns {String} 返回剪贴板中数据 .

clip.get(clipboardDataList)

  • clipboardDataList {Array} clipboardDataJSON对象数组读取剪贴板 . 该方法支持从剪贴板中读取多种类型数据 . 参考clip.get(clipboardData)clip.get([type, [raw]])参数格式描述 .
  • Returns {Array} clipboardDataJSON对象数组读取剪贴板 . 每个元素内容包括type,dataraw`参数.

clip.readAvailableTypes()

  • 返回{Array}数组 , 数组内容为当前系统支持的剪贴板类型 . 每个元素格式如下:

    • text: 文本 . 可以使用clip.get('text')读取信息 .
    • html: HTML文本 . 可以使用clip.get('html')读取信息 .
    • rtf: 富文本 . 可以使用clip.get('rtf')读取信息 .
    • png: PNG图片 . 可以使用clip.get('png')读取信息 .
    • jpeg: JPEG图片 . 可以使用clip.get('jpeg')读取信息 .

该方法中会返回可以使用的剪贴板类型 , 通过可用类型从剪贴板中获取对应类型内容 .

clip.clear()

清空剪贴板 .