收藏
回答

公众号H5,电脑端wx.chooseImage permission denied,其他平台正常?

AppID
wxd2fcdca6233a3884

很多年前的公众号h5项目,之前都正常,最近用户反映电脑端不能上传照片,经排查发现同一个页面,在手机端(安卓和IOS)和开发者工具里,都可以正常调用wx.chooseImage,但是在微信的windows/mac客户端里却提示permission denied。

测试逻辑为:

1、应用初始化时进行wx.config

2、在上传照片页面,点击添加按钮时进行wx.checkJsApi,success回调中执行wx.chooseImage

执行效果如下,pc/mac端提示checkResult为true,之后permission denied;手机端正常打开照片、拍照选择器;开发工具中正常打开选择文件窗口。

pc/mac端效果

ios/android/开发工具中效果

代码如下:

wx.checkJsApi({
    jsApiList: ['chooseImage'], // 需要检测的JS接口列表,所有JS接口列表见附录2,
    success: function (res) {
        // 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
        wx.chooseImage({
            count: 1, // 默认9
            sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
            sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
            success: function (res) {
                var localId = res.localIds[0]; // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片
                wx.uploadImage({
                    localId: localId, // 需要上传的图片的本地ID,由chooseImage接口获得
                    isShowProgressTips: 1, // 默认为1,显示进度提示
                    success: function (res) {
                        // 返回图片的服务器端ID
                    
                    }
                });
            }, error: function (e) {
                Common.alert(e);
                $scope.upError = e;
            }
        });
    },
    fail: function (res) {
        console.log(2772, res)
    }
});


回答关注问题邀请回答
收藏

1 个回答

  • sun
    sun
    11-29

    该接口已经不维护了,建议使用wx.chooseMedia

    11-29
    有用
    回复 1
    • Mr.Zhao
      Mr.Zhao
      11-29
      说的公众号h5 jssdk
      11-29
      1
      回复
登录 后发表内容
问题标签