You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ionic Cordova报错Camera is not found,cordova-plugin-camera 6.0.0无法调用相机

Ionic Cordova相机插件"camera is not found"报错排查与解决方案

1 代码逻辑错误修正

你当前贴出的业务代码存在3处明显错误,是触发报错的高频原因:

  • sourceType参数赋值错误:你当前赋值为枚举对象Camera.PictureSourceType,而非有效的枚举值,正确赋值应为Camera.PictureSourceType.CAMERA(调用设备相机)或Camera.PictureSourceType.PHOTOLIBRARY(调用系统相册)
  • 冗余未定义参数:popoverOptions未进行赋值直接传入配置项,会导致插件参数解析失败,不需要使用该配置项可直接删除
  • 缺失核心调用逻辑:你仅定义了调用配置,未执行核心调用方法navigator.camera.getPicture(),需补全对应逻辑

修正后的代码示例:

$scope.addImage = function () {
  // 前置校验插件是否加载完成
  if (typeof Camera === 'undefined' || typeof navigator.camera === 'undefined') {
    alert('相机组件未加载完成,请稍后重试');
    return;
  }
  logsFctry.logsDisplay('DEBUG', $scope.TagName, "Entered into addImage");
  var options = {
    destinationType: Camera.DestinationType.FILE_URI,              
    sourceType: Camera.PictureSourceType.CAMERA,
    mediaType: Camera.MediaType.PICTURE,
    allowEdit: false,
    encodingType: Camera.EncodingType.JPEG,
    cameraDirection: Camera.Direction.BACK,
    quality: 80,
    targetWidth: 800,
    targetHeight: 800,
    correctOrientation: true
  };
  // 补全相机调用逻辑
  navigator.camera.getPicture(onSuccess, onFail, options);
  
  // 拍照成功回调
  function onSuccess(imageURI) {
    // 自行补充图片处理逻辑
  }
  // 拍照失败回调
  function onFail(message) {
    console.log('调用失败:', message);
  }
}

2 插件与环境校验

如果修正代码后问题仍然存在,按以下步骤排查环境问题:

  • 确认插件正确安装:执行命令cordova plugin ls,检查输出中是否存在cordova-plugin-camera 6.0.0 "Camera",如果缺失重新执行安装命令:cordova plugin add cordova-plugin-camera@6.0.0
  • 确认系统权限配置:
    • Android端:检查AndroidManifest.xml中是否配置相机权限 <uses-permission android:name="android.permission.CAMERA" />,Android 12及以上版本需额外配置媒体读取权限 <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
    • iOS端:检查Info.plist中是否配置相机使用说明NSCameraUsageDescription、相册使用说明NSPhotoLibraryUsageDescription,未配置权限描述iOS会直接拒绝插件调用
  • 确认调用时机:所有Cordova插件调用必须在deviceready事件触发之后执行,若在页面初始化阶段直接调用,插件未完成加载会找不到对应对象触发报错

3 运行时校验

  • 在调用相机前打印Camera、navigator.camera对象,若输出为undefined则说明插件未正常加载,回到第二步重新检查安装配置
  • 检查App是否已获得用户授予的相机权限,若权限被用户拒绝,需先引导用户到系统设置中开启相机权限后再调用插件

内容的提问来源于stack exchange,提问作者Amitha Gandrakota

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 02:48:00