HarmonyOS鸿蒙Next复制粘贴

HarmonyOS鸿蒙Next复制粘贴

import { pasteboard, BusinessError } from '@kit.BasicServicesKit';

@Entry
@Component
struct Index {
  @State message: string = '';

  build() {
    Row() {
      Column({ space: 10 }) {
        TextInput({ placeholder: '请输入验证码', text: this.message })
        PasteButton()
          .padding({top: 12, bottom: 12, left: 24, right: 24})
          .onClick((event: ClickEvent, result: PasteButtonOnClickResult) => {
            if (PasteButtonOnClickResult.SUCCESS === result) {
              pasteboard.getSystemPasteboard().getData((err: BusinessError, pasteData: pasteboard.PasteData) => {
                if (err) {
                  console.error(`Failed to get paste data. Code is ${err.code}, message is ${err.message}`);
                  return;
                }
                // 剪贴板内容为 '123456'。
                this.message = pasteData.getPrimaryText();
              });
            }
          })
      }
      .width('100%')
    }
    .height('100%')
  }
}

更多关于HarmonyOS鸿蒙Next复制粘贴的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

HarmonyOS Next的复制粘贴功能基于系统级剪贴板服务实现。支持跨应用文本、图片和文件复制,通过ArkUI的Clipboard API调用setData()和getData()方法进行操作。数据格式支持纯文本、HTML、URL和像素地图等多种MIME类型。系统会自动管理剪贴板内容生命周期,应用无需申请特殊权限即可使用基础功能。跨设备粘贴依赖分布式剪贴板能力,需登录相同华为账号并开启多设备协同。

更多关于HarmonyOS鸿蒙Next复制粘贴的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS Next中,复制粘贴功能通过@kit.BasicServicesKitpasteboard模块实现。代码示例展示了如何使用PasteButton组件和系统剪贴板交互:点击按钮时,通过getSystemPasteboard().getData()获取剪贴板内容,并将文本数据更新到TextInput中。注意处理BusinessError以确保操作稳定性。此实现适用于需要直接读取剪贴板文本的场景,如验证码填充。

回到顶部