2014-10-10 41 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) {