无法读取undefined - 离子相机的属性'getPicture'

Mat*_*kin 13 android angularjs cordova yeoman ionic-framework

此代码返回:

 Cannot read property 'getPicture' of undefined
Run Code Online (Sandbox Code Playgroud)

不知道我做错了什么,你能帮我解决一下代码吗?

我的应用:

angular.module('Todo',['ionic','Todo.controllers','ngStorage','Todo.services','ngCordova'])

我的控制器:

.controller('profileEditCtrl', function($scope,Camera, $localStorage,
 $cordovaCamera) 
     {  
        $scope.$storage = $localStorage.$default({ data:[]});

    $scope.takePicture = function() 
    {
        navigator.camera.getPicture(onSuccess, onFail, { quality: 50,
            destinationType: Camera.DestinationType.DATA_URL }); 

      function onSuccess(imageData) {
        var image = document.getElementById('myImage');
        image.src ="data:image/jpeg;base64," + imageData;       
    }

    function onFail(message) {
        alert('Failed because: ' + message);
    }       

}});
Run Code Online (Sandbox Code Playgroud)

Moh*_*mar 12

  • 你的代码是正确的,只需添加一个html按钮ng-click="takePicture()".

  • 这里没有问题,确定浏览器 "cannot read property 'getPicture' of undefined"是因为它没有为您定义的移动摄像头配置,这意味着您应该使用以下方法在真实设备上测试您的应用程序:

    > ionic run android.

  • 请注意,谷歌浏览器的新更新有一项新功能,可以帮助您在浏览器上测试设备,如果它连接到PC /笔记本电脑,测试转到chrome的导航面板>>更多工具>>检查设备或只是去这个链接:

    铬://检查/#设备

  • 如果您plugin add org.apache.cordova.camera在应用程序中安装了插件cordova ,
    我相信您的相机将正常运行,我希望这对您有所帮助.

  • 你的建议没问题.我测试了`chrome:// inspect /#devices`并且像魅力一样工作. (2认同)