2014-10-10 75 views
1

我试图创建一个使用ionic framework一个应用程序,并ngCordovangCordova不承认相机,手电筒,或Android手机的其他部分

我按照说明来让相机通过

  • 工作与凉亭安装ngCordova
  • 包括ngCordova.js在脚本标签 ngCordova.js
  • 与安装必要的插件

我从文档的示例代码包含在我的主控制器:

var options = { 
    quality : 75, 
    destinationType : Camera.DestinationType.DATA_URL, 
    sourceType : Camera.PictureSourceType.CAMERA, 
    allowEdit : true, 
    encodingType: Camera.EncodingType.JPEG, 
    targetWidth: 100, 
    targetHeight: 100, 
    popoverOptions: CameraPopoverOptions, 
    saveToPhotoAlbum: false 
}; 

$cordovaCamera.getPicture(options).then(function(imageData) { 
    // Success! Image data is here 
}, function(err) { 
    // An error occured. Show a message to the user 
}); 

我然后使用离子平台添加的Android添加Android作为一个平台,然后在我的手机使用运行应用程序“离子运行“,而我的LG G2手机通过USB连接。问题是,它不起作用。我收到以下错误:

ReferenceError: Camera is not defined 
at new <anonymous> (file:///android_asset/www/js/app.js:36:45) 
at invoke (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:11591:17) 
at Object.instantiate (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:11602:23) 
at file:///android_asset/www/lib/ionic/js/ionic.bundle.js:14906:28 
at file:///android_asset/www/lib/ionic/js/ionic.bundle.js:14295:34 
at forEach (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:7957:20) 
at nodeLinkFn (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:14282:11) 
at compositeLinkFn (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:13730:13) 
at compositeLinkFn (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:13733:13) 
at publicLinkFn (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:13626:30) 

要弄清楚它是否与ngCordova不对劲作为一个整体,或者只是具体的拍照功能,我也试图让手电筒用相同的步骤工作,用手电筒示例代码:

变种isAvailable = $ cordovaFlashlight.available()

$ cordovaFlashlight.switchOn() 。然后( 函数(成功){/ *成功/}, 函数(误差){/呃ror * /});

当我试图运行这个,我得到一个类似的错误。

TypeError: Cannot read property 'flashlight' of undefined 
at Object.available (file:///android_asset/www/lib/ngCordova/dist/ng-cordova.js:1243:23) 
at new <anonymous> (file:///android_asset/www/js/app.js:36:42) 
at invoke (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:11591:17) 
at Object.instantiate (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:11602:23) 
at file:///android_asset/www/lib/ionic/js/ionic.bundle.js:14906:28 
at file:///android_asset/www/lib/ionic/js/ionic.bundle.js:14295:34 
at forEach (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:7957:20) 
at nodeLinkFn (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:14282:11) 
at compositeLinkFn (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:13730:13) 
at compositeLinkFn (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:13733:13) 

有谁知道会发生什么事?我觉得我已经正确地遵循了文档中列出的步骤。 (作为一个完整的检查,我试着记录window.cordova的值来检查它是否真的存在,但是有趣的是,cordova.plugins属性是一个只包含属性“Keyboard”的对象。我本来期望它也有某种参照照相机和手电筒了。也许这事做的问题?)

+0

你是否将引用插入到你的控制器?也许如果你发布控制器的完整代码.. – Mike 2014-11-09 14:44:14

+0

同样的问题。脚本顺序:1.角,2. ngcordova,3.科尔多瓦。添加ngCordova作为模块依赖项,Flashlight列在'$ cordova plugins'下,当然我使用'cordovaFlashlight'的注入。否则你会有另一个错误。 – LuckyLikey 2016-01-19 14:15:43

+0

做检查,如果oyu做了相同的东西。 – LuckyLikey 2016-01-19 14:17:24

回答

2

你必须有一个像下面的例子给cordovaFlashlight插件参考

module.controller('MyController', function($scope, $cordovaFlashlight) {