इसलिए मैंने cordova-plugin-camera का उपयोग किया है मेरे प्रोजेक्ट में फ़ोटो बनाने और गैलरी से चयन करने के लिए।

मेरे एंड्रॉइड- और आईओएस ऐप में कोई समस्या नहीं है। लेकिन लाइव विंडोज 10 मोबाइल डिवाइस पर इसका परीक्षण करते समय, मेरी गैलरी से एक छवि चुनने के बाद मेरा ऐप क्रैश हो जाता है।

हालांकि कैमरा काम करता है।

मैं जिस कोड का उपयोग करता हूं (सरलीकृत)

this.camera.getPicture({
  quality: 50,
  destinationType: this.camera.DestinationType.FILE_URI,
  sourceType: this.camera.PictureSourceType.PHOTOLIBRARY,
  encodingType: this.camera.EncodingType.JPEG,
  mediaType: this.camera.MediaType.PICTURE,
  saveToPhotoAlbum: false,           //gave problems in Windows
  correctOrientation: true
}).then(imageURI => {
  this.navCtrl.push(Page2, {image: imageURI});
}, err => {
  // ionic alert, way of still showing alerts to Windows users
  this.alertCtrl.create({message: err}).present();
});

और पेज 2 घटक में, मेरे पास कुछ भी निष्पादित होने से पहले, एक चेतावनी है जो आम तौर पर छवियूआरआई को पारित कर देगी।

न तो सफलता और न ही त्रुटि कॉलबैक निष्पादित किया जाता है, ऐप बस बंद हो जाता है।

मैंने इसके चारों ओर एक कोशिश-पकड़ जोड़ने की कोशिश की लेकिन ऐसा लगता है कि यह कोई त्रुटि नहीं फेंकता है। (कम से कम, कैच इसे पकड़ नहीं पाता है।)

2
Ivar Reukers 28 जुलाई 2017, 17:30
क्या आपने इसे चेक किया? github.com/apache/cordova-plugin-camera#windows-quirks
 – 
Suraj Rao
29 जुलाई 2017, 09:29
हाँ, और वह WP8 और WP8.1 के लिए है। मैंने इसका पता लगा लिया है कि इसका कारण क्या था और आज बाद में इस पर उत्तर लिखूंगा। अलग समस्या हालांकि विंडोज यूनिवर्सल के लिए आवश्यक समाधान WP8(.1) के समान है
 – 
Ivar Reukers
29 जुलाई 2017, 12:05

1 उत्तर

सबसे बढ़िया उत्तर

तो विंडोज़ यूनिवर्सल एप्लिकेशन में, आप कॉर्डोवा एप्लिकेशन बनाते समय फोटो-लाइब्रेरी तक नहीं पहुंच सकते हैं (कम से कम, मुझे अभी तक यह नहीं मिला है)। फाइलों पर पढ़ने/लिखने-पहुंच के कारण। (कल्पना करें कि आपके डेस्कटॉप पर विंडोज़ 10 ऐप खोलना और इसमें आपकी सभी फ़ोटो आपके लिए पंक्तिबद्ध हों, तो यह एक अच्छा विचार नहीं होगा)।

फ़ाइल-इनपुट का उपयोग करना और इसे एक बटन क्लिक पर ट्रिगर करना एक वैकल्पिक हल है (ताकि आपका UI परिवर्तित न हो)। इस तरह उपयोगकर्ता अपने लिए फ़ाइल चुनता है और ऐप को उस फ़ाइल तक पढ़ने/लिखने की पहुंच प्रदान करता है।

एचटीएमएल कुछ इस तरह दिखेगा:

<input type="file" hidden #file (change)="fileChanged()"></input>
<button (click)="file.click()">My custom button</button>

और फ़ाइल इनपुट से src (dataURI के रूप में) पढ़ने के लिए:

fileChange(event) {
    // show loading screen, this is not very fast on UWP
    let loading = this.loadingCtrl.create({
      content: 'Processing photo...'
    });
    loading.present();

    let fileList: FileList = event.target.files;
    if(fileList.length > 0) {
      let file: File = fileList[0];
      var reader = new FileReader();

      // define callback seperate from onload, else e.target.result is undefined
      let callback = (e) => { 
         loading.dismiss(); 
         let src = e.target.result;
      };

      reader.onload = callback;

      reader.readAsDataURL(event.target.files[0]);
    }
  }
0
Ivar Reukers 29 जुलाई 2017, 14:54