前言:
笔者是用uniapp进行开发的,然后打包成小程序,但是殊途同归,先让我们看一下,怎么调用复制接口的。
调用复制api:
uni.setClipboardData(OBJECT)
uni.setClipboardData({
data: 'hello',
success: function () {
console.log('success');
}
});
官方文档:uni-app官网
复制报错:
报错原因:
我们在开发小程序的时候,如果用的appid是测试的appid,是可以正常模拟复制的。但是当我们使用正式的appid的时候,因为涉及到了用户隐私,如果没有在用户隐私指引里进行使用功能的声明,那么就没办法正常的调用复制功能。
那么当你调用复制的时候,就会报
{“errMsg“:“setClipboardData:fail api scope is not declared in the privacy agreement“}
解决办法:
更新一下【用户隐私保护指引】
解决路径指引:
微信公众平台=》登录=》左侧菜单栏【设置】=》【基本设置】=》【服务内容声明】=》【用户隐私指引】=》【更新】=》【增加信息类型】=》【读取剪贴板】=》填写用处 =》【确定并生成协议】
如:
事实上,涉及到用户隐私的api很多都要更新用户隐私指引,如:获取用户手机号等
如:
拓展:
剪贴板 API 平台差异说明
App | H5 | 微信小程序 | 支付宝小程序 | 百度小程序 | 抖音小程序、飞书小程序 | QQ小程序 | 快手小程序 | 京东小程序 |
---|---|---|---|---|---|---|---|---|
√ | √ | √ | √ | √ | √ | √ | √ | √ |
uni.setClipboardData(OBJECT)
设置系统剪贴板的内容。
HarmonyOS Next 兼容性
HarmonyOS Next |
---|
HBuilderX 4.23 |
OBJECT 参数说明
参数名 | 类型 | 必填 | 说明 | 平台差异说明 |
---|---|---|---|---|
data | String | 是 | 需要设置的内容 | |
showToast | Boolean | 否 | 配置是否弹出提示,默认弹出提示 | App (3.2.13+)、H5 (3.2.13+) |
success | Function | 否 | 接口调用成功的回调 | |
fail | Function | 否 | 接口调用失败的回调函数 | |
complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
参数 HarmonyOS Next 兼容性
名称 | HarmonyOS Next 兼容性 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options | - | ||||||||||||
|
示例
uni.setClipboardData({
data: 'hello',
success: function () {
console.log('success');
}
});
uni.getClipboardData(OBJECT)
获取系统剪贴板内容。
HarmonyOS Next 兼容性
HarmonyOS Next |
---|
HBuilderX 4.23 |
OBJECT 参数说明
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
success | Function | 否 | 接口调用成功的回调 |
fail | Function | 否 | 接口调用失败的回调函数 |
complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
参数 HarmonyOS Next 兼容性
名称 | HarmonyOS Next 兼容性 | ||||||||
---|---|---|---|---|---|---|---|---|---|
options | - | ||||||||
|
GetClipboardDataSuccess 的属性值
名称 | HarmonyOS Next 兼容性 |
---|---|
data | - |
success 返回参数说明
参数 | 类型 | 说明 |
---|---|---|
data | String | 剪贴板的内容 |
示例
uni.getClipboardData({
success: function (res) {
console.log(res.data);
}
});
注意 :
设置剪贴板内容后,小程序平台会自动弹出轻提示;(微信小程序在成功回调success里设置toast可覆盖自带的轻提示)。App平台默认与小程序保持一致策略。如不希望在App平台弹出提示,可使用Native.js自行操作剪贴板,插件市场有封装好的示例操作系统粘贴板 - DCloud 插件市场。也可以在设置剪切板后立即uni.hideToast()。
如果小程序平台调用发现错误: setClipboardData:fail api scope is not declared in the privacy agreement, 原因是微信小程序于2023年9月15日更新剪切板为必须通过小程序后台配置用户隐私保护指引并审核通过后方可使用该API。