0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

HarmonyOS应用开发案例 剪贴板功能实现

鸿蒙时代 来源:鸿蒙时代 作者:鸿蒙时代 2022-03-30 10:41 次阅读

粘贴版是一个常用的功能,用户通过系统剪贴板服务,可实现应用之间的简单数据传递。例如:在应用A中复制的数据,可以在应用B中粘贴,反之亦可。
效果如图:

poYBAGJDwwKACL_MAACy1XH3rks289.png

关键代码如下:

public class PasteboardUtils {

    private static final HiLogLabel TAG = new HiLogLabel(HiLog.LOG_APP,0x0,"蛟龙腾飞--粘贴版");

    private SystemPasteboard pasteboard;

    public PasteboardUtils(Context context) {
        initPasteboard(context);
    }
    // 复制到粘贴板
    public void copyText(String text) {
        pasteboard.setPasteData(PasteData.creatPlainTextData(text));
    }

    // 粘贴
    public String pasteText() {
        String result = "";
        PasteData pasteData = pasteboard.getPasteData();
        if (pasteData == null) {
            return result;
        }
        PasteData.DataProperty dataProperty = pasteData.getProperty();
        boolean hasHtml = dataProperty.hasMimeType(PasteData.MIMETYPE_TEXT_HTML);
        boolean hasText = dataProperty.hasMimeType(PasteData.MIMETYPE_TEXT_PLAIN);
        if (hasHtml || hasText) {
            for (int i = 0; i < pasteData.getRecordCount(); i++) {
                PasteData.Record record = pasteData.getRecordAt(i);
                String mimeType = record.getMimeType();
                if (mimeType.equals(PasteData.MIMETYPE_TEXT_HTML)) {
                    result = record.getHtmlText();
                } else if (mimeType.equals(PasteData.MIMETYPE_TEXT_PLAIN)) {
                    result = record.getPlainText().toString();
                } else {
                    HiLog.info(TAG, "%{public}s", "getPasteData mimeType :" + mimeType);
                }
            }
        }
        return result;
    }

    //   监听粘贴版内容
    private final IPasteDataChangedListener listener = new IPasteDataChangedListener() {

        @Override
        public void onChanged() {
            PasteData pasteData = pasteboard.getPasteData();
            if (pasteData != null) {
                HiLog.info(TAG,"粘贴版内容改变:"+pasteData);
            }
        }
    };

    //  清空粘贴板
    public void clearPasteboard(Component component) {
        if (pasteboard != null) {
            pasteboard.clear();
        }
    }

    //初始化
    private void initPasteboard(Context context) {
        pasteboard = SystemPasteboard.getSystemPasteboard(context);
        pasteboard.addPasteDataChangedListener(listener);
    }
}
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • HarmonyOS
    +关注

    关注

    79

    文章

    1974

    浏览量

    30149
  • OpenHarmony
    +关注

    关注

    25

    文章

    3716

    浏览量

    16273
收藏 人收藏

    评论

    相关推荐

    鸿蒙OS 剪贴板开发指导

    场景介绍 同一设备的应用程序 A、B 之间可以借助系统剪贴板服务完成简单数据的传递,即应用程序 A 向剪贴板服务写入数据后,应用程序 B 可以从中读取出数据。在满足分布式剪贴板服务的使用条件
    的头像 发表于 01-31 15:46 927次阅读
    鸿蒙OS <b class='flag-5'>剪贴板</b><b class='flag-5'>开发</b>指导

    求助labview实现“选择性粘贴”的方法

    目前手上有个应用程序,生成的数据可以复制到剪贴板中,在Excel中选择“选择性粘贴”-》“粘贴链接”功能后,excel中显示的数据是前面那个软件的实时数据。现在我想把这个功能在labview里
    发表于 01-12 11:43

    labview利用调用节点从剪贴板获取图像生成EXE文件无法使用

    labview利用调用节点从剪贴板获取图像生成EXE文件时无法使用,这是什么原因呢,怎么改呢
    发表于 06-06 22:17

    十万火急,为何生成exe后方法节点没有数据输出,求大神相助

    大神们好,请教一下为什么这个程序在vi中运行可以读取到剪贴板的数据,但生成exe后读取不到剪贴板的数据,数据显示为空白的。
    发表于 09-02 15:15

    HarmonyOS应用开发-剪贴板功能实现

    粘贴版是一个常用的功能,用户通过系统剪贴板服务,可实现应用之间的简单数据传递。例如:在应用A中复制的数据,可以在应用B中粘贴,反之亦可。效果如图: 关键代码如下:public class
    发表于 03-30 10:48

    OpenHarmony 3.1 Release最全资料免费获取

    对静态壁纸管理能力的支持  - 新增对下载服务管理能力的支持  主要涉及如下需求:  I4U2WR 新增特性:时间时区同步管理  I4ZTTE【新增特性】剪贴板数据项-支持将剪贴板数据项强制转换为文本
    发表于 03-31 14:23

    JAVA教程之使用剪贴板的复制粘贴程序

    JAVA教程之使用剪贴板的复制粘贴程序,很好的学习资料。
    发表于 03-31 11:13 5次下载

    Delphi教程之监视剪贴板

    Delphi教程之监视剪贴板,很好的Delphi资料,快来下载吧。
    发表于 04-11 16:09 9次下载

    小米手机和PC的共享剪贴板上线,PC端装云服务客户端就OK

    刘鸣称:“看到有用户在要共享剪贴板,其实我们已经支持了,只需要电脑端装小米云服务客户端就可以了。”
    的头像 发表于 11-24 09:09 7696次阅读

    苹果iOS应用程序不经过用户同意读取剪贴板数据

    据Macrumors报道,最新研究显示数十种流行的iOS应用程序,在未经用户同意的情况下,读取剪贴板的内容,其中可能包含敏感信息。
    的头像 发表于 03-16 09:19 2840次阅读

    iOS 14的隐私功能显示了复制到剪贴板的TikTok阅读文本

    开发人员开始下载并使用iOS 14 beta版,他们发现流行的视频共享平台TikTok是读取用户复制到剪贴板的文本的应用程序之一。从下面的视频中可以看到,在TikTok应用程序打开时,苹果的新隐私警告继续出现在屏幕上。
    的头像 发表于 07-03 16:33 2334次阅读

    华为开发者分论坛HarmonyOS学生公开课-OpenHarmony Codelabs开发案

    2021华为开发者分论坛HarmonyOS学生公开课-OpenHarmony Codelabs开发案
    的头像 发表于 10-24 11:25 1917次阅读
    华为<b class='flag-5'>开发</b>者分论坛<b class='flag-5'>HarmonyOS</b>学生公开课-OpenHarmony Codelabs<b class='flag-5'>开发案</b>例

    ADP1074: 带有活性剪贴板和 <span class="analog-coupler" >i </span> Cloupler数据表的孤立、同步前向控制器 ADI

    电子发烧友网为你提供ADI(ADI)ADP1074: 带有活性剪贴板和 i
    发表于 10-08 16:41
    ADP1074: 带有活性<b class='flag-5'>剪贴板</b>和 <span class="analog-coupler" >i </span> Cloupler数据表的孤立、同步前向控制器 ADI

    怎么将剪贴板数据导入到labview数组

    剪贴板数据导入到LabVIEW数组可以通过以下步骤完成。首先,需要使用LabVIEW自带的函数库VIs来实现剪贴板数据的获取和处理。 第一步是获取剪贴板数据。LabVIEW提供了Cl
    的头像 发表于 01-05 13:35 1426次阅读

    鸿蒙开发Ability Kit程序访问控制:使用粘贴控件

    粘贴控件是一种特殊的系统安全控件,它允许应用在用户的授权下无提示地读取剪贴板数据。
    的头像 发表于 07-03 09:15 312次阅读
    鸿蒙<b class='flag-5'>开发</b>Ability Kit程序访问控制:使用粘贴控件