3***@qq.com
3***@qq.com
  • 发布:2025-04-11 16:57
  • 更新:2025-04-11 16:57
  • 阅读:54

IOS在app申请权限时,请问如何直接通过授权弹窗询问的方式打开授权?

分类:uni-app

iOS在app申请权限时,需要app申请过一次后,才可以在设置中找到相应的权限去打开或关闭。请问iOS如何直接通过授权弹窗询问的方式打开授权?

iOS需要获取相机权限,来提供远程视频问题的服务。这个是原生实现的,需要弹出这个授权弹窗。请问uniapp怎么实现呢?还是说需要原生iOS写个插件给uniapp调用?

以下是uniapp调用相机授权的代码


functIon requestCamera() {  
        return new Promise(async (rel, rej) => {  
            var platform = uni.getSystemInfoSync().platform;  
            const appAuthorizeSetting = uni.getAppAuthorizeSetting()  
            console.log("appAuthorizeSetting", appAuthorizeSetting.cameraAuthorized)  
            console.info("platform", platform)  
            if (platform == 'ios') {  
                if (appAuthorizeSetting.cameraAuthorized == 'not determined') { // 从未授权过  
                    return rel(true)  
                }  
                plus.camera.getCamera()  
                let camera = permision.judgeIosPermission("camera"); //判断ios是否给予摄像头权限  
                console.log("camera", camera)  
                if (camera) {  
                    return rel(true);  
                }  
                let cmr = plus.camera.getCamera();  
                plus.nativeUI.confirm(  
                    '请在"设置-应用-隐私"选项中,允许应用访问您的相机', // 消息内容  
                    function(e) {  
                        // 用户点击按钮后的回调函数  
                        // e.index 表示用户点击的按钮索引,从1开始  
                        if (e.index === 1) {  
                            console.log('用户点击了确定按钮');  
                            permision.gotoAppPermissionSetting()  
                            return rel(false);  
                        } else if (e.index === 2) {  
                            // 用户点击了“取消”按钮(假设“取消”按钮是第二个按钮)  
                            console.log('用户点击了取消按钮');  
                            return rel(false);  
                            // 在这里执行取消操作,例如关闭对话框、不清除表单等  
                        }  
                    },  
                    '提示', // 标题  
                    ['暂不开启', '马上设置'] // 按钮数组,数组中的字符串表示按钮上的文字  
                );  
            }  
            if (platform == "android") {  
                let camera = await permision.requestAndroidPermission(  
                    "android.permission.CAMERA"); //判断安卓是否给予摄像头权限  
                if (camera == 0) {  
                    console.log('请开启摄像头使用权限');  
                    rel(false)  
                } else if (camera == -1) {  
                    //永久拒绝  
                    rel(false)  
                } else {  
                    rel(true);  
                }  
            }  
        })  
    }
2025-04-11 16:57 负责人:无 分享
已邀请:

要回复问题请先登录注册