2014-11-04 11 views
8

का उपयोग कर मूल फ़ाइल ब्राउज़र को आमंत्रित करें मुझे अपने फोनगैप प्रोजेक्ट में फ़ाइल अपलोड सुविधा लागू करना है। उपयोगकर्ता फोन मेमोरी या एसडी कार्ड से किसी भी प्रकार की फाइल अपलोड करने में सक्षम होना चाहिए। JQuery मोबाइल फ्रेमवर्क का उपयोग करके डिज़ाइन की गई एप्लिकेशन स्क्रीन। मैंने इनपुट प्रकार = "फ़ाइल" की कोशिश की, लेकिन यह एंड्रॉइड 4.4 में समर्थित नहीं है। मैंने फोनगैप कैमरा एपीआई भी कोशिश की, लेकिन यह केवल मीडिया फाइलों का समर्थन करता है। मुझे कुछ कॉर्डोवा प्लगइन्स मिले (exm1, exm2)। लेकिन कस्टम यूआई का उपयोग कर इन प्लगइन्स। मैं & फ़ाइल चुनने के लिए देशी फ़ाइल ब्राउज़र को आमंत्रित करना चाहता हूं, इसे एंड्रॉइड & आईफोन प्लेटफॉर्म दोनों में काम करना है। क्या इसे लागू करने का कोई तरीका है?फोनगैप

मुझे कॉर्डोवा फ़ाइल चयनकर्ता प्लगइन मिला (https://github.com/cdibened/filechooser) एंड्रॉइड मंच के लिए सहायक होगा, लेकिन मैं इसे काम करने में असमर्थ हूं। फ़ाइल कॉल चयन के बाद सफलता कॉलबैक फ़ंक्शन तुरंत ट्रिगर नहीं हो रहा है (एंड्रॉइड 4.4.2 के साथ परीक्षण किया गया)। कृपया नीचे अपना कोड,

<input type="file" id="fileinput" name="fileinput"/>

$("#fileinput").bind('click',function(){ 
    console.log("choose file selected"); 
    filechooser.open({}, fileChooseSuccess, fileChooseFailed); 
}); 
function fileChooseSuccess(data) { 
    var filepath = data.filepath; 
    console.log("file path:"+filepath); 
} 
function fileChooseFailed(msg) { 
    console.log(msg); 
} 

उत्तर

0

Android के लिए आप इस प्लगइन का उपयोग कर सकते हैं: https://github.com/cdibened/filechooser

इनपुट फ़ाइल संस्करणों के सबसे पर भी एंड्रॉयड पर काम करना चाहिए (, लेकिन यह 'नहीं करता है एंड्रॉइड 4.4, 4.4.1 और 4.4.2 पर काम नहीं) HTML file input in android webview (android 4.4, kitkat)

आईओएस के लिए कोई प्लगइन नहीं है, आपके पास मूल फ़ाइल ब्राउज़र नहीं है।

नमूना परियोजना https://github.com/jcesarmobile/FileBrowserAndroidTest

+0

मैंने उपरोक्त प्लगइन (https://github.com/cdibened/filechooser) की कोशिश की। लेकिन मैं इसे काम करने में असमर्थ हूं। "Filechooser.open" के लिए पहला तर्क अनिवार्य है? मुझे सभी फाइल प्रकारों का समर्थन करने के लिए क्या पास करना है? प्लगइन प्रलेखन में, यह लिखा है कि "आपको अपने व्यक्तित्व में com.ianhanniballake.localstorage.documents को बदलना चाहिए, साथ ही साथ LocalStorageProvider.AUTHORITY फ़ील्ड"। मुझे क्या बदलना है? –

+0

मैंने लिंक किए गए प्रश्न में tobik ansker पढ़ें (http://stackoverflow.com/questions/19882331/html-file-input-in-android-webview-android-4-4-kitkat) – jcesarmobile

+0

@jcesammobile, मैंने इस प्लगइन को लागू किया , लेकिन यह उम्मीद के रूप में काम नहीं कर रहा है। जब उपयोगकर्ता दूसरी फ़ाइल का चयन करता है तो पहली सफलता कॉलबैक फ़ंक्शन ट्रिगर हो रही है। इसी प्रकार दूसरा सफलता कॉलबैक फ़ंक्शन ट्रिगर हो रहा है जब उपयोगकर्ता तीसरी फ़ाइल का चयन करता है। मैं एंड्रॉइड 4.4.2 के साथ परीक्षण कर रहा हूँ। –

3

मैं अपने प्लगइन, FileChooser काम कर पाने में सक्षम था।

वहाँ कुछ चीजें है कि हालांकि किया जाना है। आप अपने संपादक

  • FileChooser.java
  • FileChooserActivity.java
  • FileListAdapter.java
  • FileListFragment.java
  • LocalStorageProvider.java

    और संलग्न के साथ निम्न खोलने की आवश्यकता

    import your.package.name.R; 
    

    उन फ़ाइलों में से प्रत्येक के लिए।

    <html> 
    <head> 
        <title>Hello World</title> 
        <script type="text/javascript" src="cordova.js"></script> 
        <script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script> 
        <script type="text/javascript"> 
        document.addEventListener("deviceready", function(){ 
    
         var success = function(data) { 
          alert("File chosen: " + data.filepath); 
         }; 
    
         var error = function(msg) { 
          console.log(msg); 
         }; 
    
         $('#fileinput').click(function(e) { 
          filechooser.open({}, success,error); 
         }); 
        }); 
        </script> 
    
    </head> 
    
    <body> 
        <input type="file" id="fileinput" name="fileinput"/> 
    </body> 
    </html> 
    

    ही, ध्यान रखें कि लेखक इस इरादा किटकैट 4.4.4 में प्रयोग की जाने वाली हो:

यहाँ मैं इस्तेमाल किया डेमो कोड है। यह निचले संस्करणों के साथ काम कर सकता है लेकिन वह अनिश्चित है।

ध्यान दें कि HTML5 पसंद विंडो के बीच एकमात्र अंतर और यह "आंतरिक संग्रहण" विकल्प है।

उम्मीद है कि इससे मदद मिलती है।

+0

एकाधिक फ़ाइल का चयन करने के लिए वाक्यविन्यास क्या है –