2015-06-03 6 views
7

तो मैं एक साधारण परियोजना बनाने:डिवाइस से एकाधिक छवियों को कैसे चुनें?

ionic start MyApp 

और ImagePicker प्लगइन जोड़ें:

ionic plugin add https://github.com/wymsee/cordova-imagePicker.git -save 

और बस परियोजना में this example www folder कॉपी और कार्य करें:

ionic platform add android 
ionic build android 
ionic run android 

सब कुछ ठीक काम कर रहा है । मैं बिना किसी त्रुटि के इरादे से कई छवियों को चुन सकता हूं।

अभी तक इतना अच्छा है। अब मैंने इसे अपनी परियोजना में शामिल करने का प्रयास किया है इसलिए मैंने ImagePicker प्लगइन जोड़ा। अब यह मेरा प्लगइन सूची है:

ionic plugin ls 
com.synconset.imagepicker 1.0.6 "ImagePicker" 
cordova-plugin-camera 1.1.0 "Camera" 
cordova-plugin-device 1.0.0 "Device" 
cordova-plugin-dialogs 1.1.0 "Notification" 
cordova-plugin-splashscreen 2.0.0 "Splashscreen" 
cordova-plugin-statusbar 1.0.0 "StatusBar" 
cordova-plugin-vibration 1.1.0 "Vibration" 
cordova-plugin-whitelist 1.0.0 "Whitelist" 

मैं एक नया मॉड्यूल बनाया:

angular.module('App.ImageSelect', []) 

.config(function ($stateProvider, $urlRouterProvider) { 
    $stateProvider.state('app.imageSelect', { 
     url: "/products/prints/pola/imageSelect", 
     views: { 
      'menuContent': { 
       templateUrl: "modules/products/prints/pola/imageSelect/imageSelect.html", 
       controller: 'ImageSelectController' 
      } 
     } 
    }); 
}) 

.controller('ImageSelectController', function ($scope, $cordovaImagePicker) { 
    $scope.images = []; 

    $scope.selectImages = function() { 
     $cordovaImagePicker.getPictures(
      function (results) { 
       for (var i = 0; i < results.length; i++) { 
        console.log('Image URI: ' + results[i]); 

        $scope.images.push(results[i]); 
       } 

       if (!$scope.$$phase) { 
        $scope.$apply(); 
       } 
      }, 
      function (error) { 
       console.log('Error: ' + error); 
      } 
     ); 
    }; 
}); 

आप देख सकते हैं यह बिल्कुल वैसा ही नियंत्रक जो मैं here जो साधारण परीक्षण परियोजना पर काम से नकल है।

किसी भी संदिग्ध कारण के लिए यह काम नहीं कर रहा है। मुझे हमेशा त्रुटि मिलती है:

TypeError: Cannot read property 'getPictures' of undefined 

तो इसका क्या मतलब है? मैं दोनों परियोजनाओं में एक ही कोड का उपयोग कर उपयोग कर रहा हूँ। एक सब कुछ काम कर रहा है और दूसरे में कुछ भी काम नहीं कर रहा है। मैंने here वर्णित सभी उदाहरणों की कोशिश की लेकिन यह हमेशा एक ही है।

+0

क्या आपने ऐप को मैनिफेस्ट में कैमरे तक पहुंच प्रदान की है? – QueryLars

+1

संस्करण 3.0 के बाद से आपको इसे मैन्युअल रूप से संपादित करने की आवश्यकता नहीं है। यह सब स्वचालित रूप से जेनरेट हो जाता है – Mulgard

+0

क्या आपने 'कॉर्डोवा-छवि पिकर' प्लगइन जोड़ा था? यदि हां, तो इसे दोबारा हटाएं और पुनः इंस्टॉल करें। मैंने अभी अपने टेस्ट ऐप की जांच की है और आईओएस पर प्लगइन ठीक काम करता है, किसी भी 5 छवियों को पिकअप कर सकता है। एंड्रॉइड में जांच रहा है ... – Tamal

उत्तर

5

मैंने आपकी परियोजना की जांच की है और आपकी index.html cordova.js गुम है। तो आपके कोई भी प्लगइन लोड या प्रारंभ नहीं हो रहा है। बस नीचे दिए गए लाइन को index.html में जोड़ें जहां आप ng-cordova.js लोड करते हैं।

<script src="cordova.js"></script> 
+2

वाह ... यह सबसे स्पष्ट था और मैंने इसे 3 दिनों के बाद नहीं देखा। आपका बहुत बहुत धन्यवाद। – Mulgard

0

उदाहरण पर आप $cordovaCamera इंजेक्शन कर रहे हैं, हालांकि प्रतिष्ठित $cordovaImagePicker का उपयोग करता है। इसके अलावा, आपके उदाहरण में window ऑब्जेक्ट से ऑब्जेक्ट imagePicker का उपयोग करके। मैं window ऑब्जेक्ट नहीं चाहता हूं जो आप चाहते हैं।

सही निर्भरता $cordovaImagePicker इंजेक्शन करने का प्रयास करें और इसके बजाय विधि $cordovaImagePicker.getPictures का उपयोग करें।

+0

@Mulgard का उपयोग कर रहा हूं: ThiagoPXP सही है। NgCordova का उपयोग करने का प्रयास करें और '$ cordovaImagePicker' इंजेक्ट करें, फिर '$ cordovaImagePicker' का उपयोग करें। संदर्भ [यहां] (http://ngcordova.com/docs/plugins/imagePicker/)। – LeftyX

संबंधित मुद्दे