问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

微信小程序调用复制API报错解决方案

创作时间:
作者:
@小白创作中心

微信小程序调用复制API报错解决方案

引用
CSDN
1.
https://m.blog.csdn.net/m0_63026408/article/details/142564617

在使用uniapp开发微信小程序时,可能会遇到调用复制API时报错的问题,错误信息如下:

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

项目场景

这是一个使用uniapp开发的小程序项目,当尝试使用以下代码调用复制接口时遇到了问题:

uni.setClipboardData({
    data: 'hello',
    success: function () {
        console.log('success');
    }
});

原因分析

报错的根本原因在于小程序的隐私政策声明。具体来说:

  • 在开发阶段使用测试appid时,可以正常模拟复制功能。
  • 当使用正式appid时,由于涉及用户隐私,必须在用户隐私指引中声明使用复制功能的权限。否则,即使调用复制API也会报错。

解决方案

要解决这个问题,需要完成以下步骤:

  1. 更新用户隐私保护指引

    这一步可能需要1-3天的审核时间。具体操作路径如下:

    微信公众平台 -> 登录 -> 左侧菜单栏【设置】 -> 【账号设置】 -> 【服务内容声明】 -> 【用户隐私指引】 -> 【更新】 -> 【增加信息类型】 -> 【读取剪贴板】 -> 填写用途 -> 【确定并生成协议】

  2. 配置小程序配置文件

    在小程序的配置文件中添加相应的权限声明:

    "permission" : {
        "scope.userLocation" : {
            "desc" : "你的位置信息将用于和门店的距离长度"
        },
        "scope.writePhotosAlbum":true,
        "scope.clipboard":true
    }
    
  3. 调用复制API的完整代码示例

    确保在调用复制API时,能够正确处理成功和失败的情况:

    copyVal(){
        uni.setClipboardData({
            data: '15025153638',
            success: function (res) {
                console.log("111111111=====1111111",res)
                uni.showToast({
                    title: '复制成功'
                })
            },
            fail: function (err) {
                console.log("=========err=======",err)
                uni.showToast({
                    title: '复制失败',
                    icon: 'none',
                })
            }
        });
    }
    

效果图

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号