uni-app uni.scanCode nvue页面调用扫码组件iOS黑屏,安卓正常

uni-app uni.scanCode nvue页面调用扫码组件iOS黑屏,安卓正常

开发环境 版本号 项目创建方式
Mac 15.4 HBuilderX

产品分类:uniapp/App

PC开发环境操作系统:Mac

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

HBuilderX类型:正式

HBuilderX版本号:4.75

手机系统:iOS

手机系统版本号:iOS 18

手机厂商:苹果

手机机型:iphone16

页面类型:nvue

vue版本:vue3

打包方式:云端

项目创建方式:HBuilderX


示例代码:

"ios": {  
        "permissions": {  
          "camera": {  
            "description": "需要相机权限用于扫码"  
          }  
        },  
        "privacyDescription": {  
          "NSCameraUsageDescription": "扫码开门需要摄像头权限",  
          "NSPhotoLibraryUsageDescription": "需要访问相册以选择图片",  
          "NSPhotoLibraryAddUsageDescription": "需要访问相册以保存图片",  
          "NSFileProviderUsageDescription": "需要访问文件系统以存储应用数据",  
          "NSDocumentStorageUsageDescription": "需要存储应用日志和数据"  
        },  
        "capabilities": {  
          "entitlements": {  
            "com.apple.security.device.camera": true  
          },  
          "plists": {  
            "NSCameraUsageDescription": "扫码开门需要摄像头权限"  
          }  
        },  
        "info": {  
          "NSCameraUsageDescription": "扫码开门需要摄像头权限"  
        }  
      }
const handleOnScanCode = () => {  
  uni.scanCode({  
    onlyFromCamera: true,  
    success: function (res) {  
      console.log('条码类型:' + res.scanType);  
      console.log('条码内容:' + res.result);  
    }  
  });  

};

更多关于uni-app uni.scanCode nvue页面调用扫码组件iOS黑屏,安卓正常的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

有时候编辑器勾起来了 还要看看manifest.json里面的 “modules”: { “Camera”: {}, “Barcode”: {} },
这个都要有,不然等于没有勾选

更多关于uni-app uni.scanCode nvue页面调用扫码组件iOS黑屏,安卓正常的实战教程也可以访问 https://www.itying.com/category-93-b0.html


解决了吗?看着好像不像是manifest中配置的问题,是 ref 的问题?

回复 DCloud_UNI_yuhe: 解决了,因为项目动态配置manifest.json,所以manifest.json没改动到导致

这是一个典型的iOS权限配置问题。在nvue页面中调用uni.scanCode时iOS出现黑屏,通常是因为权限描述配置存在冲突。

从你的配置代码看,存在多处重复的NSCameraUsageDescription声明:

  1. privacyDescription节点下的NSCameraUsageDescription
  2. capabilities.plists节点下的NSCameraUsageDescription
  3. info节点下的NSCameraUsageDescription

iOS系统在解析这些配置时可能出现冲突,导致摄像头权限无法正常获取,从而出现黑屏。

解决方案:

将权限配置简化为以下格式:

"ios": {
  "privacyDescription": {
    "NSCameraUsageDescription": "扫码开门需要摄像头权限"
  }
}
回到顶部