HarmonyOS 鸿蒙Next 基于@ohos.pasteboard实现剪贴板功能

发布于 1周前 作者 wuwangju 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 基于@ohos.pasteboard实现剪贴板功能

2 回复

在HarmonyOS(鸿蒙)开发中,使用@ohos.pasteboard实现剪贴板功能,你需要首先确保你的项目已经正确配置了对应的权限和模块依赖。接着,你可以通过Pasteboard类来操作剪贴板,如读取、写入文本内容等。

示例代码片段可能包括:

import ohos.data.ability.AbilitySlice;
import ohos.agp.window.dialog.ToastDialog;
import ohos.global.resource.Text;
import ohos.agp.text.TextField;
import ohos.data.net.uri.Uri;
import ohos.data.text.Pasteboard;

// 写入剪贴板
Pasteboard.setPrimaryClip(ClipData.newPlainText("label", "text to copy"));

// 读取剪贴板
ClipData clip = Pasteboard.getPrimaryClip(null);
if (clip != null && clip.getItemCount() > 0) {
    CharSequence text = clip.getItemAt(0).getText();
    // 使用text
}

如果问题依旧没法解决请加我微信,我的微信是itying888。

在module.json5文件中按需声明ohos.permission.READ_PASTEBOARD权限以访问剪贴板

// 导入必要的模块  
import pasteboard from '@ohos.pasteboard';  
import { BusinessError } from '@ohos.base';  
  
// 设置剪贴板数据  
export async function setPasteData(): Promise<void> {  
    let text: string = 'Hello, HarmonyOS!';  
    let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, text);  
    let systemPasteBoard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();  
    await systemPasteBoard.setData(pasteData).catch((err: BusinessError) => {  
        console.error(`Failed to set pastedata. Code: ${err.code}, message: ${err.message}`);  
    });  
}  
  
// 获取剪贴板数据  
export async function getPasteData(): Promise<void> {  
    let systemPasteBoard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();  
    systemPasteBoard.getData((err: BusinessError, data: pasteboard.PasteData) => {  
        if (err) {  
            console.error(`Failed to get pastedata. Code: ${err.code}, message: ${err.message}`);  
            return;  
        }  
        // 对pasteData进行处理,获取文本内容  
        let primaryText: string = data.getPrimaryText();  
        console.log('Pasted text:', primaryText);  
    });  
}
回到顶部