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
我在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,你把判断去掉应该在错误的回调里会有权限相关的信息。如果返回没权限你再提示用户去设置
回复 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时系统才会弹出权限请求框。
解决方案:
- 确保在manifest.json中正确配置了所需权限:
"ios": {
"permissions": {
"CAMERA": {
"description": "需要相机权限"
}
}
}
- 在代码中主动请求权限:
// 在需要使用权限的页面
uni.authorize({
scope: 'scope.camera',
success() {
console.log('已授权')
},
fail() {
console.log('未授权')
}
})
-
对于iOS14+系统,部分权限默认不会显示在设置中,只有当应用实际请求过该权限后才会出现对应的开关。
-
如果用户拒绝了权限,可以引导用户手动开启:
uni.openSetting({
success(res) {
console.log(res.authSetting)
}
})