前言

大家好,我是若城。写这个系列的目的是为了帮助大家在开发时能够快速地完成一些小功能的开发。需要注意的是,这个系列不会有过多的讲解以及复杂的演示,但可以保证开发者在使用时直接复制粘贴就可以将该功能实现。不过,需要申请权限的地方,还请开发者自己去申请,这个系列不会讲解过于基础的内容。

功能介绍

本文将介绍如何在HarmonyOS Next应用中实现基础的文本复制能力,通过点击按钮复制文案,然后可以粘贴到任意一个地方。剪切板功能是应用中常用的基础能力,可以提升用户体验,方便用户在不同应用间传递文本信息。

 

开发准备

所需模块

在开发剪切板功能前,需要导入以下模块:

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

  promptAction: PromptAction = this.getUIContext().getPromptAction();

函数实现

   // 复制文本
    async copyText(txt: string) {
        // 获取系统剪贴板对象
        let text = txt;
        // 创建一条纯文本类型的剪贴板内容对象
        let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, text);
        // 将数据写入系统剪贴板
        let systemPasteboard = pasteboard.getSystemPasteboard();
        await systemPasteboard.setData(pasteData);
        //从系统剪贴板中读取数据
        systemPasteboard.getData().then((data) => {
            let outputData = data;
            // 从剪贴板数据中获取条目数量
            let recordCount = outputData.getRecordCount();
            // 从剪贴板数据中获取对应条目信息
            for (let i = 0; i < recordCount; i++) {
                let record = outputData.getRecord(i).toPlainText();
                console.info('Get data success, record:' + record);
            }

            this.promptAction.showToast({
                message: "复制成功",
                duration: 2000,

            });
        }).catch((error: BusinessError) => {
            // 处理异常场景

            this.promptAction.showToast({
                message: "复制失败",
                duration: 2000,

            });
        })
    }

函数实现这里 主要关键点已经添加了具体的注释了, 不在详解

点击按钮调用复制函数

  // 复制文案
                   Column() {

                       Image($r("app.media.copyWord"))
                           .width(24)
                           .height(24)
                       Text('复制')
                           .fontSize(12)
                           .fontColor('#FFFFFF')
                           .margin({ top: 4 })
                   }
                   .onClick(() => {
                       this.copyText(this.dataList.content)
                   }
                   )
                   .margin({ right: 32 })

ui 部分点击按钮 直接进行复制即可,注意 传递的参数 是纯文本哦~~

总结

在应用开发的过程中,复制粘贴能力也是比较常见的, 本篇文章各位开发者可以 直接粘贴复制到项目中,即可实现复制文案的能力, 如需进阶内容可以评论区留言,我会再写一篇进阶版复制的文章哦, 下课~~

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐