微信小程序复制时报错 setClipboardData:fail api scope is not declared in the privacy agreem

182 阅读1分钟

在使用uni-app开发微信小程序的过程中,实现复制功能。

使用uni.setClipboardData() ,这个API涉及到用户的隐私,如果没有在用户隐私指引里进行使用功能的声明,那么就没办法正常的调用复制功能。就会出现如下报错:

{“errMsg“:“setClipboardData:fail api scope is not declared in the privacy agreement“}

解决改问题的方法很简单:

需要在微信公众平台进行配置,登录成功之后左边菜单栏,点击头像 -> 账号设置 ->基本设置 -> 服务内容声明 -> 服务内容声明  -> 用户隐私保护指引/去完善

image.png

image.png

如果配置了剪切板功能会出现该条目

image.png

如果没有上图剪切板的条目,则需要点击 增加信息类型 , 然后勾选所需的类型既可。

image.png

配置之后再调用API就可以正常使用

const copyText = (text) => {
  console.log('复制文本:', text);
 
  if (!text) {
    uni.showToast({ title: '复制内容不能为空', icon: 'none' });
    return;
  }
 
  uni.setClipboardData({
    data: text,
    success: () => {
      uni.showToast({ title: '复制成功', icon: 'success' });
    },
    fail: (err) => {
      console.error('复制失败:', err);
    }
  });
};

添加到剪切板之后可以通过 uni.getClipboardData() 获取剪切板的内容

uni.getClipboardData({
	success: function (res) {
		console.log(res.data);
	}
});