2017-08-22 15 views
5

में काम नहीं कर रहा है Iionic3 एप्लिकेशन में कमजोर समस्या का सामना कर रहा हूं।आयनिक फ़ाइल ट्रांसफर प्लगइन उत्पादन संस्करण

मुझे अपनी स्थिति का विवरण विस्तार से बताएं: वास्तव में मुझे अपने आयनिक ऐप के लिए ऑफ़लाइन समर्थन की आवश्यकता है। इसलिए जब भी मैं एपीआई कहता हूं, मैं डेटा को स्थानीय भंडारण में संग्रहीत करता हूं। और एपीआई से मेरी स्थानीय निर्देशिका में छवि भी डाउनलोड करें। ताकि जब स्थानीय संसाधनों से इंटरनेट उपलब्ध न हो तो मैं डेटा और छवि ला सकता हूं।

मैं इस प्लगइन का उपयोग कर रहा सर्वर से छवि डाउनलोड करने के लिए स्थानीय करने के लिए: https://ionicframework.com/docs/native/file-transfer/

यह ठीक काम कर रहा है, तो मैं आदेश के बाद चलाएँ:

ionic cordova run android 

लेकिन यह काम नहीं कर रहा है जब मैं निम्न कमांड चलाएं :

ionic cordova run android --prod 

कोड:

import { FileTransfer, FileUploadOptions, FileTransferObject } from '@ionic-native/file-transfer'; 
import { File } from '@ionic-native/file'; 

constructor(private transfer: FileTransfer, private file: File) { } 

const fileTransfer: FileTransferObject = this.transfer.create(); 

download() { 
    const url = 'http://www.example.com/file.pdf'; 
    fileTransfer.download(url, this.file.dataDirectory + 'file.pdf').then((entry) => { 
    console.log('download complete: ' + entry.toURL()); 
    }, (error) => { 
    // handle error 
    }); 
} 

मुझे कंसोल से कोई त्रुटि या समस्या नहीं मिल रही है। तो मुझे नहीं पता कि मैं क्या खो रहा हूं। स्थानीय भंडारण के लिए अच्छी तरह से कॉन्फ़िगर करने की अनुमति भी है। इसलिए अनुमति एक मुद्दा नहीं है।

आपके समय और उत्तर के लिए उन्नत में धन्यवाद।

+0

आप कैसे कह रहे हैं कि यह काम नहीं कर रहा है? – Sampath

+0

@Sampath यह कोई त्रुटि नहीं दिखा रहा है और न ही डाउनलोड शुरू हो रहा है। –

+0

@HiteshUpadhyay क्षमा करें, मुझे कोई समाधान नहीं मिल रहा है, लेकिन शायद हम उत्पादन कोड को obfuscating से रोकने के लिए प्रो-गार्ड जैसे कुछ का उपयोग कर सकते हैं। – Mohsen

उत्तर

5

अंततः मुझे इस मुद्दे के समाधान मिलते हैं! पहले आप इस अद्यतन करना चाहिए पर आदेश:

npm i @ionic/[email protected] --save 
npm i [email protected] --save 

और शायद अपने कोड में कहीं न कहीं आप फ़ाइल स्थानांतरण प्लगइन से पहले

platform.ready.then()

मेरे मामले में संबंधित कुछ फोन: मैं कुछ सेवा इंजेक्षन

this.fileTransfer = this.transfer.create();

और मैं: यह है कि इस तरह की एक पंक्ति में शामिल हैं इसे बदल दिया:

this.platform.ready().then(() => { 
    // Okay, so the platform is ready and our plugins are available. 
    // Here you can do any higher level native things you might need. 
    this.fileTransfer = this.transfer.create(); 
}); 

अब सब कुछ ठीक काम करता है।

अधिक जानकारी:

क्यों डिबग मोड में इस काम करता है?

उत्तर बहुत स्पष्ट है, क्योंकि डीबग मोड डिवाइस तैयार घटना में आग और फाइल-ट्रांसफर के लिए काफी समय दिया जाता है जिसे इसके बाद कहा जाता है! लेकिन उत्पादन मोड में, डिवाइस तैयार होने से पहले बहुत तेज़ और फाइल-ट्रांसफर तैयार किया गया। उम्मीद है इससे आपको मदद होगी।

+0

के लिए समस्या खोलता हूं, बहुत बहुत धन्यवाद, इससे मुझे बहुत मदद मिली :) –

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