uni.setClipboardData 是 uni-app 框架提供的用于设置系统剪贴板内容的 API。它封装了各端(H5、小程序、App)的剪贴板功能
官方定义
uni.setClipboardData({
data: '',
success: () => {},
fail: () => {},
complete: () => {}
})
参数详解
| 参数名 | 类型 | 必填 | 说明 |
|---|
data | String | 是 | 要复制到剪贴板的文本内容 |
success | Function | 否 | 复制成功时触发 |
fail | Function | 否 | 复制失败时触发 |
complete | Function | 否 | 无论成功失败都会执行 |
使用示例
uni.setClipboardData({
data: 'Hello uni-app!',
success: () => {
console.log('复制成功');
uni.showToast({
title: '已复制到剪贴板',
icon: 'success'
});
},
fail: () => {
console.log('复制失败');
}
});
平台差异说明
| 平台 | 支持情况 | 备注 |
|---|
| H5 | ✅ | 通过 document.execCommand('copy') 实现,需要用户交互触发(如点击事件) |
| 微信小程序 | ✅ | 支持,需用户触发(如点击按钮) |
| 支付宝/字节/百度小程序 | ✅ | 支持,逻辑类似 |
| App(iOS/Android) | ✅ | 支持,原生能力封装 |
注意事项
- 必须由用户行为触发(如点击按钮),不能放在
onLoad 或定时器中自动执行。
- H5 端受浏览器限制,部分浏览器可能拦截非用户触发的剪贴板操作。
- data 必须是字符串,不能是对象或数字。
- 无权限提示:部分平台(如微信小程序)不会主动提示用户“已复制”,建议手动用
uni.showToast 提示。
配套 API:读取剪贴板
uni.getClipboardData({
success: (res) => {
console.log('剪贴板内容:', res.data);
}
});