HarmonyOS 读取剪贴板api获取内容为undefined

项目中功能需要使用读取剪贴板,已申请ACL(受限)白名单,且更新签名到项目中,运行时还是无法获取到剪贴板内容,返回内容为undefined

已完成如下操作:

  1. 申请ohos.permission.READ_PASTEBOARD权限白名单

  2. 更新添加权限后的p7b签名

  3. module.json5中添加权限申明

  4. 使用systemPasteboard.getData()获取剪贴板内容

HarmonyOS
2024-12-27 14:16:51
1068浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
put_get

HarmonyOS 剪贴板服务(pasteboard_service)为应用提供复制粘贴能力。剪贴板中涉及敏感信息,应安全要求,在应用升级到api12及以后,对读取剪贴板接口增加读权限校验。

为信息安全考虑,建议升级到API12使用剪贴板能力,但升级时需要注意申请剪贴板读取权限。

涉及的TS接口如下:

1.getData( callback: AsyncCallback<PasteData>): void,

2.getData(): Promise<PasteData>

3.getDataSync(): PasteData

请在升级到api12时,参考剪贴板服务的changelog进行配置

zh-cn/release-notes/changelogs/OpenHarmony_5.0.0.18/changelogs-pasteboard.md OpenHarmony/docs - Gitee.com

还需要弹窗用户授权,参考代码如下:

reqPermissionsFromUser(permissions: Array<Permissions>): void {
  let context = getContext(this) as common.UIAbilityContext;
  let atManager = abilityAccessCtrl.createAtManager();
  // requestPermissionsFromUser会判断权限的授权状态来决定是否唤起弹窗
  atManager.requestPermissionsFromUser(context, permissions).then((data) => {
  let grantStatus: Array<number> = data.authResults;
  let length: number = grantStatus.length;
  for (let i = 0; i < length; i++) {
  if (grantStatus[i] === 0) {
  // 用户授权,可以继续访问目标操作
  this.permission_state = true;
  this.msgList.push('申请权限成功');
}
else {
  // 用户拒绝授权,提示用户必须授权才能访问当前页面的功能,并引导用户到系统设置中打开相应的权限
  // openPermissionsInSystemSettings();
  console.error("user did not grant!")
  this.permission_state = false;
  this.msgList.push('申请权限失败');
}
}
// 授权成功
}).catch((err: String) => {

})
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
分享
微博
QQ
微信
回复
2024-12-27 16:14:04


相关问题
关于读取剪贴板内容咨询
814浏览 • 1回复 待解决
无法读取系统剪贴板内容
995浏览 • 1回复 待解决
HarmonyOS 应用获取剪贴板内容问题
760浏览 • 1回复 待解决
HarmonyOS 剪贴板
817浏览 • 1回复 待解决
HarmonyOS 剪贴板用法
935浏览 • 1回复 待解决
HarmonyOS 剪贴板问题
1046浏览 • 1回复 待解决
读取剪贴板是否需要READ_PASTEBOARD权限
2864浏览 • 1回复 待解决
如何将内容直接复制到剪贴板
1527浏览 • 1回复 待解决
系统剪贴板可以存储哪些数据?
1172浏览 • 1回复 待解决
HarmonyOS 跨设备剪贴板开发咨询
933浏览 • 1回复 待解决
基于@ohos.pasteboard实现剪贴板功能
1225浏览 • 1回复 待解决
HarmonyOS 系统剪贴板的复制粘贴方法
1165浏览 • 1回复 待解决
如何将纯文本数据写入系统剪贴板
1134浏览 • 1回复 待解决
如何获取单例undefined
1280浏览 • 1回复 待解决