uni-app ios权限不见了

uni-app ios权限不见了

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

产品分类:uniapp/App

PC开发环境操作系统:Windows

HBuilderX类型:正式

HBuilderX版本号:3.2.3

手机系统:iOS

手机系统版本号:iOS 15

手机厂商:苹果

手机机型:iphone12

页面类型:vue

vue版本:vue2

打包方式:云端

App下载地址或H5网址:https://itunes.apple.com/cn/app/id1587475233

操作步骤:

刚安装的app 缺少权限 部分ios 14 15版本的有 会存在一些机型没有权限开关


预期结果:

刚安装的app 缺少权限 部分ios 14 15版本的有 会存在一些机型没有权限开关

实际结果:

刚安装的app 缺少权限 部分ios 14 15版本的有 会存在一些机型没有权限开关


bug描述:

缺失相机权限等一些权限,在其他手机上有

更多关于uni-app ios权限不见了的实战教程也可以访问 https://www.itying.com/category-93-b0.html

24 回复

你要在app内使用或者申请该功能后此处才有权限

更多关于uni-app ios权限不见了的实战教程也可以访问 https://www.itying.com/category-93-b0.html


我在uniapp的mainfest.json里面加了,如果没有权限的话,相机权限什么的应该没勾 有的机型显示不一样 很费解 下面发张图片是其他机型显示的

回复 z***@qq.com: 你可以随便新建一个原生项目测试下,当你没有调用过该权限,这里是不显示的,只有你使用过并且有选择允许或者拒绝这里才会有权限

回复 z***@qq.com: 你可以新建一个应用试下,有显示的是因为你之前安装过该应用并且设置过权限

回复 z***@qq.com: 或者你appStore新下载一个应用 先别打开你直接去看他的权限

回复 z***@qq.com: 要不你可以去百度一下,这是苹果系统的特性

回复 DCloud_iOS_WZT: 那我是判断用户没有权限的时候 给他跳转到设置里面 自己打开的

回复 z***@qq.com: 你怎么判断的,使用相机uni内部有逻辑应该不需要你单独处理

回复 DCloud_iOS_WZT: 我在点击相册的方法 有加一个这个js里面 看有没有permision.judgeIosPermission(“camera”)

回复 z***@qq.com: 不要自己加判断,用的uni的哪个api,你把判断去掉应该在错误的回调里会有权限相关的信息。如果返回没权限你再提示用户去设置

回复 DCloud_iOS_WZT: https://ext.dcloud.net.cn/plugin?id=594 这个链接里面的function 单独又拿出来

回复 z***@qq.com: 因为他这个js相机权限没有反应 所有 我单独拿出来判断的

回复 DCloud_iOS_WZT: uni.chooseVideo因为这个的话 有一个是从相册或自己拍的sourceType: [‘camera’, ‘album’],

回复 DCloud_iOS_WZT: 我现在用uni.chooseVideo返回的失败相机权限没有用,mainfest.json里面的相机权限提示没有触发到。用什么能访问到相机权限。

回复 z***@qq.com: 我测试了是有相机权限提示的啊

回复 DCloud_iOS_WZT: 是我们这个app的吗,有的手机有,有的没有

回复 z***@qq.com: 你新建个空项目只写chooseVideo试下,用你说的有问题的手机试,或者你用hellouni试

回复 DCloud_iOS_WZT: 问题就出在uni.chooseVideo方法下没有自动调起相机的权限提醒,失败的时候,返回的消息,第一次安装这个app的没有再设置里面添加相机什么的。主要问题是没有自动调起如果没有开权限的话。

回复 DCloud_iOS_WZT: mainfest.json配置的ios权限配置生效好像,其他手机可能是以前什么缓存留下才有的权限。光提示没有用,没有对应的设置能打开。

回复 DCloud_iOS_WZT: 没有手机首次提醒,ios之前审核的时候说需要在哪里用到才提醒,所以页面首次进入主页没有提醒,只有选择视频拍摄的时候有,但是首次也没有触发,就很奇怪。

回复 z***@qq.com: 你这话术看不懂,1.设置里的权限是系统添加的,你首次调用之后才会添加 2.如果你说个别手机首次没有弹出系统提示,你用那个手机在示例项目试一下,看能不能复现问题。我这边用了很多手机在示例项目里没遇到过你说的问题

这个是正常的显示

同样遇到此问题,请问楼主最后咋解决的?
我这边调用的是扫一扫 接口

这是iOS系统权限管理机制的问题。在iOS系统中,权限是动态请求的,只有当你实际调用相关API时系统才会弹出权限请求框。

解决方案:

  1. 确保在manifest.json中正确配置了所需权限:
"ios": {
    "permissions": {
        "CAMERA": {
            "description": "需要相机权限"
        }
    }
}
  1. 在代码中主动请求权限:
// 在需要使用权限的页面
uni.authorize({
    scope: 'scope.camera',
    success() {
        console.log('已授权')
    },
    fail() {
        console.log('未授权')
    }
})
  1. 对于iOS14+系统,部分权限默认不会显示在设置中,只有当应用实际请求过该权限后才会出现对应的开关。

  2. 如果用户拒绝了权限,可以引导用户手动开启:

uni.openSetting({
    success(res) {
        console.log(res.authSetting)
    }
})
回到顶部