HarmonyOS 鸿蒙Next 求助api9 剪切板无效
HarmonyOS 鸿蒙Next 求助api9 剪切板无效
import http from ‘@ohos.net.http’; import pasteboard from ‘@ohos.pasteboard’; //剪切板 import router from ‘@ohos.router’;
@Styles function funS() { .border({ width: 1, color: “#f45632” }) .padding(10).margin(10) }
let systemPasteboard = pasteboard.getSystemPasteboard();
@Entry @Component struct One { build() { Column() { Button(‘点我复制’).onClick((event: ClickEvent) => { let dataXml = ‘Hello World’; let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, dataXml); systemPasteboard.setData(pasteData).then((data) => { console.info(‘复制成功:’, data); }).catch((err) => { console.error('复制失败: ’ + err.message); }); }) Button(‘获取剪切板内容’).onClick((event: ClickEvent) => { systemPasteboard.getData().then((pasteData) => { console.log(‘pasteData=’, JSON.stringify(pasteData)) let text = pasteData.getPrimaryText(); console.log(‘text=’, JSON.stringify(text)) }).catch((err) => { console.error('剪切失败: ’ + err.message); }) }) } } }
<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>
这是完整的代码,刚开始测试的时候
let systemPasteboard = pasteboard.getSystemPasteboard();这部分是在每一个btn里面都重新定义了一个,未生效,所以全局定义
点击复制之后控制台显示:复制成功: undefined 返回的data是undefinded,官方文档中没有给出明确示范以及说明,但是这一步是走进了.then的
接下来点击获取按钮,
console.log(‘pasteData=’, JSON.stringify(pasteData)) 这一步打印 pasteData= {}
console.log(‘text=’, JSON.stringify(text)) 打印显示text=""
搜索论坛看到仅有的帖子说是设备缓存的问题,我使用的是本地模拟器,我把模拟器缓存清了甚至删除了重新下载也没用?对比别人的代码我没看出我写的问题,求助
更多关于HarmonyOS 鸿蒙Next 求助api9 剪切板无效的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
更多关于HarmonyOS 鸿蒙Next 求助api9 剪切板无效的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
API9的模拟器的剪贴板复制功能有问题,我也遇到了。因为暂时不是必需的,所以没解决。不过我想应该是模拟器的问题,如果条件允许,可以在远程真机、本地真机上测试下,应该可以找到问题。
可以参考如下代码:
import pasteboard from '@ohos.pasteboard';
@Entry @Component struct Test { build() { Column() { Button(‘点我复制’).onClick((event: ClickEvent) => { const pasteboardData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, ‘要复制的数据’) const systemPasteboard = pasteboard.getSystemPasteboard() systemPasteboard.setData(pasteboardData) // 将数据放入剪切板 systemPasteboard.getData().then((data) => { if (data) { console.log(‘Success’) } else { console.log(‘fail’) } }) }) } } }
<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>
针对HarmonyOS 鸿蒙Next中api9剪切板无效的问题,可能是由于权限设置不当或API版本兼容性问题导致。请确保在module.json5中正确配置了读取剪贴板的权限(如ohos.permission.read_pasteboard),并在代码中正确调用剪贴板API。同时,检查是否有其他库或框架与鸿蒙系统存在冲突。如果问题依旧没法解决,请加我微信,我的微信是itying888,以便进一步分析解决。
更多关于HarmonyOS 鸿蒙Next 求助api9 剪切板无效的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html