Cordova 相机插件给出错误“对象”没有方法“getPicture”

Posted

技术标签:

【中文标题】Cordova 相机插件给出错误“对象”没有方法“getPicture”【英文标题】:Cordova Camera plugin gives error 'object' has no method "getPicture" 【发布时间】:2018-06-22 18:03:46 【问题描述】:

在正确设置所有内容(如之前多次完成)后,我正在开发 ionic v1 Camera 应用程序。在构建应用程序并对其进行调试后,我得到了这个错误。

插件安装正确, ng-cordova.min 包括在内。 $CordovaCamera 注入。 这是我的代码:

$scope.takePhoto = function () 
              var options = 
                quality: 100,
                destinationType: Camera.DestinationType.DATA_URL,
                sourceType: Camera.PictureSourceType.CAMERA,
                allowEdit: true,
                encodingType: Camera.EncodingType.JPEG,
                targetWidth: 300,
                targetHeight: 300,
                popoverOptions: CameraPopoverOptions,
                saveToPhotoAlbum: true
            ;

                $cordovaCamera.getPicture(options).then(function (imageData) 
                    $rootScope.imgURI = "data:image/jpeg;base64," + imageData;
                    $state.go('menu.signUp');
                , function (err) 
                    // An error occured. Show a message to the user
                );
            

功能运行良好。但相机没有打开并给出错误 如图所示。

【问题讨论】:

【参考方案1】:

尝试在接触控制器中注入 $cordovaCamera 并像这样使用它

camera.getPicture() //只是相机而不是 $cordovaCamera

【讨论】:

【参考方案2】:

使用 camera.getPicture() 或 navigator.camera.getPicture()

https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-camera/

【讨论】:

【参考方案3】:

确保 $cordovaCamera 依赖注入然后像这样使用它

$cordovaCamera.getPicture(options).then(function(imageData) 
  var image = document.getElementById('myImage');
  image.src = "data:image/jpeg;base64," + imageData;
, function(err) 
  // error
);

【讨论】:

以上是关于Cordova 相机插件给出错误“对象”没有方法“getPicture”的主要内容,如果未能解决你的问题,请参考以下文章

Cordova 相机插件

Cordova 构建错误:相机插件缺少 android.support.v4 库依赖项

在cordova相机插件的success方法中调用angluar2方法

如何使用 Cordova 相机插件拍摄多张照片

Cordova 相机插件 IOS 11 无法从库中选择图像

添加proguard后用于cordova的相机插件中的java NullPointerException