在使用uni-app开发微信小程序的过程中,实现复制功能。
使用uni.setClipboardData() ,这个API涉及到用户的隐私,如果没有在用户隐私指引里进行使用功能的声明,那么就没办法正常的调用复制功能。就会出现如下报错:
{“errMsg“:“setClipboardData:fail api scope is not declared in the privacy agreement“}
解决改问题的方法很简单:
需要在微信公众平台进行配置,登录成功之后左边菜单栏,点击头像 -> 账号设置 ->基本设置 -> 服务内容声明 -> 服务内容声明 -> 用户隐私保护指引/去完善
如果配置了剪切板功能会出现该条目
如果没有上图剪切板的条目,则需要点击 增加信息类型 , 然后勾选所需的类型既可。
配置之后再调用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);
}
});