Skip to content

IClipboardService 剪贴板服务

剪贴板服务提供跨平台的文本和数据复制粘贴能力。

接口定义

IClipboardService {
  // 写入
  writeText(text: string): Promise<void>
  writeData(data: ClipboardData): Promise<void>
  
  // 读取
  readText(): Promise<string>
  readData(): Promise<ClipboardData>
  
  // 查询
  hasText(): Promise<boolean>
  getAvailableTypes(): Promise<string[]>
  
  // 清空
  clear(): Promise<void>
}

数据模型

ClipboardData

字段类型必填说明
typestringMIME 类型
textstring文本内容
htmlstringHTML 内容
uristringURI/URL
blobBlob二进制数据

功能规范

文本写入

writeText(text: string)

  • MUST 将文本写入系统剪贴板
  • MUST 支持 Unicode 字符
  • MUST 在写入失败时抛出异常
  • SHOULD 支持大文本(>1MB)

文本读取

readText()

  • MUST 从系统剪贴板读取文本
  • MUST 在无文本时返回空字符串
  • MUST 在无权限时抛出异常
  • SHOULD 支持多种文本编码

权限处理

  • MUST 在首次使用时请求剪贴板权限(如平台要求)
  • MUST 在权限被拒绝时提供清晰错误信息
  • SHOULD 缓存权限状态避免重复询问

使用场景

1. 复制地址

用户点击复制按钮

调用 writeText(address)

显示复制成功反馈

2. 粘贴地址

用户点击粘贴按钮

检查 hasText()

调用 readText()

验证地址格式

填入输入框

平台适配

平台实现方式
WebClipboard API
DWEBdweb.clipboard API
iOSUIPasteboard
AndroidClipboardManager

安全考虑

  • MUST NOT 在后台自动读取剪贴板
  • MUST 在读取敏感数据后及时清空
  • SHOULD 提供剪贴板清空倒计时功能
  • MAY 支持加密剪贴板内容

错误处理

错误类型说明处理方式
PermissionDenied无剪贴板权限提示用户授权
NotSupported平台不支持使用降级方案
ReadError读取失败重试或提示
WriteError写入失败重试或提示

Released under the MIT License.