iOS权限授权添加

<!-- 相册 -->  
<key>NSPhotoLibraryUsageDescription</key>  
<string>App需要您的同意,才能访问相册</string>  
<!-- 相册写入 -->
<key>NSPhotoLibraryAddUsageDescription</key>  
<string>App需要您的同意,才能保存至相册</string>  

以上两个 需要注意单纯的读系统相册 不写入的话 iOS11是不会提示的 具体参考这里
<!-- 相机 -->  
<key>NSCameraUsageDescription</key>  
<string>App需要您的同意,才能访问相机</string>  
<!-- 麦克风 -->  
<key>NSMicrophoneUsageDescription</key>  
<string>App需要您的同意,才能访问麦克风</string>  
<!-- 位置 -->  
<key>NSLocationUsageDescription</key>  
<string>App需要您的同意,才能访问位置</string>  
<!-- 在使用期间访问位置 -->  
<key>NSLocationWhenInUseUsageDescription</key>  
<string>App需要您的同意,才能在使用期间访问位置</string>  
<!-- 始终访问位置 -->  
<key>NSLocationAlwaysUsageDescription</key>  
<string>App需要您的同意,才能始终访问位置</string>  
<!-- 日历 -->  
<key>NSCalendarsUsageDescription</key>  
<string>App需要您的同意,才能访问日历</string>  
<!-- 提醒事项 -->  
<key>NSRemindersUsageDescription</key>  
<string>App需要您的同意,才能访问提醒事项</string>  
<!-- 运动与健身 -->  
<key>NSMotionUsageDescription</key> <string>App需要您的同意,才能访问运动与健身</string>  
<!-- 健康更新 -->  
<key>NSHealthUpdateUsageDescription</key>  
<string>App需要您的同意,才能访问健康更新 </string>  
<!-- 健康分享 -->  
<key>NSHealthShareUsageDescription</key>  
<string>App需要您的同意,才能访问健康分享</string>  
<!-- 蓝牙 -->  
<key>NSBluetoothPeripheralUsageDescription</key>  
<string>App需要您的同意,才能访问蓝牙</string>  
<!-- 媒体资料库 -->  
<key>NSAppleMusicUsageDescription</key>  <string>App需要您的同意,才能访问媒体资料库</string>  

 

转载于:https://my.oschina.net/rainwz/blog/2086006

### UniApp iOS 权限配置及常见问题解决方案 在 UniApp 开发中,iOS 平台上权限的处理需要特别注意,因为 iOS 系统对权限管理较为严格。以下是关于 UniApp 在 iOS 平台上的权限配置及相关问题的解决方案。 #### 1. 获取权限状态 UniApp 提供了 `uni.getAppAuthorizeSetting()` 方法来获取当前应用的权限状态。该方法返回一个对象,包含各种权限的状态,例如相机、相册、麦克风等[^1]。权限状态可能为以下几种: - **authorized**:表示已经获得授权,无需再次请求授权。 - **denied**:表示请求授权被拒绝,无法再次请求授权(需引导用户手动打开系统设置)。 - **not determined**:表示尚未请求授权,会在 App 下一次调用系统相应权限时请求(仅 iOS 出现)。 - **config error**:表示配置错误,需检查相关权限配置。 示例代码如下: ```javascript const appAuthorizeSetting = uni.getAppAuthorizeSetting(); console.log(appAuthorizeSetting); if (appAuthorizeSetting.cameraAuthorized === 'denied') { console.log('相机权限已被拒绝,请引导用户打开设置'); } ``` #### 2. 权限未弹出问题 某些情况下,iOS 安装后首次运行时不会弹出权限请求对话框,这通常是因为权限未被触发或配置不正确。解决方法包括: - **手动触发权限**:通过调用相关功能(如拍照、访问相册)来触发权限请求[^5]。 - **检查配置文件**:确保在 `manifest.json` 文件中启用了相关模块,并在打包时勾选了对应的权限模块[^2]。 #### 3. 相机权限配置 对于相机权限,需在 Android 的 `AndroidManifest.xml` 中添加以下权限声明: ```xml <uses-permission android:name="android.permission.CAMERA" /> ``` 而在 iOS 平台上,则需在 `Info.plist` 文件中添加以下键值对[^4]: ```xml <key>NSCameraUsageDescription</key> <string>我们需要访问您的相机以拍摄照片</string> ``` #### 4. 蓝牙权限配置 如果应用需要访问蓝牙权限iOS 审核可能会拒绝应用,要求提供明确的使用目的。此时需在 `Info.plist` 文件中添加以下键值对[^3]: ```xml <key>NSBluetoothAlwaysUsageDescription</key> <string>我们需要访问蓝牙以实现设备连接功能</string> ``` #### 5. 权限检测与申请 可以通过自定义权限检测工具来动态检测和申请权限。以下是一个检测相机权限的示例代码[^4]: ```javascript import permission from "./permission.js"; async function checkCamera() { try { let checkResult = await permission("camera"); console.log("检测信息:", checkResult); if (checkResult.code === 1) { let result = checkResult.data; if (result === 1) { console.log("授权成功!"); } else if (result === 0) { console.log("授权已拒绝!"); } else if (result === -1) { console.log("您已永久拒绝摄像机权限,请在应用设置中手动打开!"); } } } catch (err) { console.log("授权失败:", err); } } ``` #### 6. 常见问题及解决方案 - **问题:iOS 安装后首次运行无权限弹窗** - 解决方案:通过调用相关功能(如拍照、访问相册)来触发权限请求[^5]。 - **问题:在线打包后摄像头无法使用** - 解决方案:确保在打包配置中启用了相机模块,并在 `manifest.json` 中正确配置相关权限。 - **问题:审核被拒(如蓝牙权限)** - 解决方案:在 `Info.plist` 文件中添加明确的权限描述,并说明具体用途。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值