HarmonyOS 鸿蒙Next怎么读取剪切板里的文字数据?

发布于 1周前 作者 caililin 来自 鸿蒙OS

HarmonyOS 鸿蒙Next怎么读取剪切板里的文字数据?

怎么读取剪切板里的文字数据??


关于HarmonyOS 鸿蒙Next怎么读取剪切板里的文字数据?的问题,您也可以访问:https://www.itying.com/category-93-b0.html 联系官网客服。

2 回复

你好呀,鸿蒙开发者同僚

关于你的问题《读取剪切板里的文字数据》

要读取剪切板里的文字数据,可以使用鸿蒙OS提供的剪贴板相关接口。以下是处理步骤,希望对你有所帮助:

使用剪贴板接口读取文字数据

1.获取剪贴板对象: 使用getSystemPasteboard接口获取系统剪贴板对象。

2.读取剪贴板内容: 使用getData接口读取系统剪贴板内容 。该接口有多种形式:

  • getData(callback: AsyncCallback<PasteData>):异步回调方式。

  • getData(): Promise<PasteData>:Promise异步回调方式。

3.处理读取结果: 读取成功时,回调函数或Promise对象会返回剪贴板的数据 。可以在回调函数中处理数据,或者使用Promise的then方法进行处理。

注意事项

  • 确保应用具有ohos.permission.READ_PASTEBOARD权限。

  • 如果在异步操作中遇到“Another copy or paste operation is in progress”错误(错误码12900003),可以稍后再次尝试读取操作。

通过上述方式流程操作,可以读取剪切板中的文字数据。

参考API文档

@ohos.pasteboard (剪贴板)-数据文件处理-ArkTS API-Basic Services Kit(基础服务)-基础功能-系统 - 华为HarmonyOS开发者 (huawei.com)

async getDataStr(): Promise<string> {
  // 获取系统剪贴板对象
  let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
  let text = '';
  //判断系统剪贴板中是否有内容。
  if (systemPasteboard.hasDataSync()) {
    let data = await systemPasteboard.getData()
    text = data.getPrimaryText();
    if (this.isEmpty(text)) {
      text = data.getPrimaryHtml();
    }
    if (this.isEmpty(text)) {
      text = data.getPrimaryUri();
    }
    if (this.isEmpty(text)) {
      text = '';
    }
  }
  return text
}
isEmpty(str: string | undefined | null): boolean {
  return str == undefined || str == null || str.length == 0;
}<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>
回到顶部