介绍自定义监听剪贴板方法的使用。
WebOffice 在某些环境下无法直接获取系统剪贴板数据, 用户如果能通过外部方法拿到系统剪贴板数据,可以通过以下方案注入到 WebOffice 内部剪贴板中,实现对外部数据的粘贴功能。
前提-自行获取系统剪贴板数据
/**
* 获取系统剪贴板数据的方法一般由运行环境提供
* 例如微信小程序的 wx.getClipboardData, 获取的过程与 WebOffice 的逻辑无关。
*/
const getData = () => {
// 使用外部环境提供的方法获取到剪贴板数据
// 如 let data = wx.getClipboardData(...)
let data = {text: '123'}
return data
}
关键-在粘贴时机注入数据
通过 config 配置参数getClipboardData,可以在移动端App从系统剪切板获取数据。
粘贴文档时,可以通过传入getClipboardData参数,调用传入函数获取系统剪切板数据,返回一个Promise
或者Object
。示例代码如下。
// 定义注入系统剪贴板数据的回调函数
const listenPasteAndInsertData = () => {
const clipboardData = getData() // 通过外部方法获取剪贴版数据
return Promise.resolve({
text: clipboardData.text,
html: clipboardData.html,
updateExternal: true,
})
}
// 作为初始化参数配置
aliyun.config({
...
getClipboardData: listenPasteAndInsertData,
...
})
文档内容是否对您有帮助?