uni-app 初次打开应用直接提示要允许访问照片权限

uni-app 初次打开应用直接提示要允许访问照片权限

开发环境 版本号 项目创建方式
Windows win10 HBuilderX

产品分类:uniapp/App

PC开发环境操作系统:Windows

PC开发环境操作系统版本号:win10

HBuilderX类型:正式

HBuilderX版本号:3.4.9

手机系统:Android

手机系统版本号:Android 10

手机厂商:小米

手机机型:m9

页面类型:vue

vue版本:vue2

打包方式:云端

项目创建方式:HBuilderX

示例代码:

是在app-plus->distribute->android 中设置permissionExternalStorage的

操作步骤:

"permissionExternalStorage" : { "request" : "none", "prompt" : "应用保存运行状态等信息,需要获取读写手机存储(系统提示为访问设备上的照片、媒体内容和文件)权限,请允许。" },
设置none 后初次打开应用还会提示要允许访问以下权限访问照片文件权限。

预期结果:

打开后不提示

实际结果:

打开就提示授权

bug描述:

"permissionExternalStorage" : { "request" : "none", "prompt" : "应用保存运行状态等信息,需要获取读写手机存储(系统提示为访问设备上的照片、媒体内容和文件)权限,请允许。" },
设置none 后初次打开应用还会提示要允许访问以下权限访问照片文件权限。

更多关于uni-app 初次打开应用直接提示要允许访问照片权限的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

你刚开始是不是有代码调用这东西了

更多关于uni-app 初次打开应用直接提示要允许访问照片权限的实战教程也可以访问 https://www.itying.com/category-93-b0.html


请问解决了吗?

用原生插件了吗?看起来是三方sdk引起的。 打包时虽然manifest设置不要权限,但如果原生插件申请了权限,还是会被打进去

在 uni-app 中,如果你希望在应用初次打开时直接提示用户允许访问照片权限,你可以使用 uni.authorizeuni.getSetting 等 API 来实现。以下是一个简单的示例,展示了如何在应用启动时请求照片权限。

1. 使用 uni.authorize 请求权限

uni.authorize 是用于直接请求用户授权的 API。你可以在应用的 onLaunch 生命周期中调用它来请求照片权限。

// main.js 或 App.vue 中的 onLaunch
export default {
    onLaunch() {
        // 请求照片权限
        uni.authorize({
            scope: 'scope.writePhotosAlbum', // 请求写入相册的权限
            success() {
                console.log('用户已授权访问照片');
            },
            fail() {
                console.log('用户拒绝了访问照片的请求');
            }
        });
    }
}

2. 使用 uni.getSetting 检查权限状态

如果你希望在请求权限之前先检查用户是否已经授权,可以使用 uni.getSetting

// main.js 或 App.vue 中的 onLaunch
export default {
    onLaunch() {
        // 检查权限状态
        uni.getSetting({
            success(res) {
                if (!res.authSetting['scope.writePhotosAlbum']) {
                    // 如果用户未授权,则请求权限
                    uni.authorize({
                        scope: 'scope.writePhotosAlbum',
                        success() {
                            console.log('用户已授权访问照片');
                        },
                        fail() {
                            console.log('用户拒绝了访问照片的请求');
                        }
                    });
                } else {
                    console.log('用户已经授权访问照片');
                }
            }
        });
    }
}

3. 处理权限拒绝的情况

如果用户拒绝了权限请求,你可以提示用户手动开启权限,或者引导用户前往设置页面开启权限。

uni.showModal({
    title: '提示',
    content: '您拒绝了访问照片的权限,是否前往设置页面开启?',
    success(res) {
        if (res.confirm) {
            // 引导用户前往设置页面
            uni.openSetting({
                success(settingRes) {
                    console.log(settingRes.authSetting);
                }
            });
        }
    }
});
回到顶部