小程序获取手机相机权限

使用到的方法:

  1.uni.getSetting

  2.uni.authorize

  3.uni.showActionSheet

  4.uni.showModal

  5.uni.openSetting

复制代码
uni.getSetting({
                    success: (res) => {
                        let authStatus = res.authSetting['scope.album'] && res.authSetting['scope.camera'];
                        // 如果没有授权相册
                        if(!authStatus){
                            //向用户发起授权请求
                            uni.authorize({
                                scope: "scope.camera",
                                success: () => {
                                    uni.showActionSheet({
                                        title: '选择上传类型',
                                        itemList: ['图片', '视频'],
                                        success: res => {
                                            console.log(res);
                                            if (res.tapIndex == 0) {
                                                this.chooseImages();
                                            } else {
                                                this.chooseVideo();
                                            }
                                        }
                                    });
                                },
                                fail: () => {
                                    uni.showModal({
                                        title: '授权失败',
                                        content: '需要从您的相机或相册获取图片,请在设置界面打开相关权限',
                                        success: (res) => {
                                            if (res.confirm) {
                                                uni.openSetting()
                                            }
                                        }
                                    })
                                }
                            })
                        }else{
                            uni.showActionSheet({
                                title: '选择上传类型',
                                itemList: ['图片', '视频'],
                                success: res => {
                                    console.log(res);
                                    if (res.tapIndex == 0) {
                                        this.chooseImages();
                                    } else {
                                        this.chooseVideo();
                                    }
                                }
                            });
                        }
                    }
                })
复制代码

 

       1.uni.getSetting

    获取用户的当前设置。

uni.getSetting({
   success(res) {
      console.log(res.authSetting)
   }
})

 

  2.uni.authorize

官方解释:提前向用户发起授权请求。调用后会立刻弹窗询问用户是否同意授权小程序使用某项功能或获取用户的某些数据,但不会实际调用对应接口。如果用户之前已经同意授权,则不会出现弹窗,直接返回成功。如果用户之前拒绝了授权,此接口会直接进入失败回调,一般搭配uni.getSettinguni.openSetting使用。

我的理解:比如发起获取定位的请求,询问用户是否同意授权,用户不同意好理解,同意了也不会打开本地的定位,需要用户手动开启定位或者搭配uni.openSetting使用。感觉就是一个提示功能。如果我的理解有误,还请不吝赐教。

 

 

 注意:scope.userLocation 权限需要在 manifest.json 配置 permission

 

 

 或者

 

 

 

  3.uni.showActionSheet

从底部向上弹出操作菜单

复制代码
uni.showActionSheet({
    itemList: ['A', 'B', 'C'],
    success: function (res) {
        console.log('选中了第' + (res.tapIndex + 1) + '个按钮');
    },
    fail: function (res) {
        console.log(res.errMsg);
    }
});
复制代码

  4.uni.showModal

显示模态弹窗,可以只有一个确定按钮,也可以同时有确定和取消按钮。类似于一个API整合了 html 中:alert、confirm。

复制代码
uni.showModal({
    title: '提示',
    content: '这是一个模态弹窗',
    success: function (res) {
        if (res.confirm) {
            console.log('用户点击确定');
        } else if (res.cancel) {
            console.log('用户点击取消');
        }
    }
});
复制代码

  5.uni.openSetting

调起客户端小程序设置界面,返回用户设置的操作结果。

 

 

uni.openSetting({
  success(res) {
    console.log(res.authSetting)
  }
});

 

posted @   king'sQ  阅读(2308)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示