समस्या विवरण: मैं फ़ाइल या फ़ाइल-सिस्टम-जड़ों (पढ़ने और लिखने) के साथ आंतरिक संग्रहण तक पहुंच सकता हूं। लेकिन ऐसी फाइल किसी अन्य ऐप से नहीं पहुंच सकती है। उदाहरण के लिए यदि मैं इस फ़ाइल को ईमेलकंपर्स प्लगइन के माध्यम से भेजना चाहता हूं, तो फ़ाइल को ईमेल क्लाइंट द्वारा एक्सेस नहीं किया जा सकता है। (समान "फंक्शन के साथ" फंक्शन के लिए जाता है।) यदि मैं {sandboxed: true}
को गलत (बाहरी स्टोरेज को लिखने के लिए) विकल्प बदलता हूं, तो यह फ़ाइलUtils.UNKNOWN_ERR में काम नहीं करता है और समाप्त होता है। मैंने यूएसबी से डिस्कनेक्ट होने पर एप्लिकेशन को आजमाया, क्योंकि कुछ दस्तावेज़ों ने उल्लेख किया कि पीसी पर घुड़सवार होने पर बाह्य भंडारण तक पहुंचा नहीं जा सकता है।कॉर्डोवा फ़ाइल/फ़ाइल-सिस्टम-रूट प्लगइन्स के साथ बाहरी संग्रहण तक कैसे पहुंचे?
जो मैंने mailing list पर पढ़ा है उससे यह संभव होना चाहिए। ऐसा लगता है कि मुझे एक महत्वपूर्ण बिंदु याद आती है?
प्रसंग: मैं android उपकरणों पर चलने के लिए iPhone के लिए बनाई गई एक संकर आवेदन सक्षम करने के लिए प्रयास करें। थोड़ा खेल का मैदान बनाने के लिए, मैं एक छोटी परीक्षा परियोजना बनाते हैं।
संपादित करें: फ़ाइल-सिस्टम-जड़ों और फ़ाइल प्लगइन के बीच एक समस्या प्रतीत होती है। लेकिन मेरे पास दोनों के नवीनतम संस्करण हैं। (फ़ाइल: 1.0.1 फ़ाइल-सिस्टम-जड़ों: 0.1.0) डिबगिंग फ़ाइल-प्रणाली और फ़ाइल कक्षाओं पता चलता है कि
private String fullPathForLocalURL(Uri URL) {
if (FILESYSTEM_PROTOCOL.equals(URL.getScheme()) && "localhost".equals(URL.getHost())) {
String path = URL.getPath();
if (URL.getQuery() != null) {
path = path + "?" + URL.getQuery();
}
return path.substring(path.indexOf('/', 1));
// path = "/cache-external" at this point
// results in index out of bounds exception
मैं क्या कोशिश की है?
config.xml
<preference name="AndroidExtraFilesystems" value="files,files-external,documents,sdcard,cache,cache-external" />
AndroidManifest.xml
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
जावास्क्रिप्ट कोड
function createTextDocument(filename, text) {
cordova.filesystem.getDirectoryForPurpose('cache', {sandboxed: false}, successCallback, failureCallback);
function successCallback(directoryEntry){
console.log('directory found (cordova): ' + directoryEntry.toURL());
console.log('directory found (native) : ' + directoryEntry.toNativeURL());
directoryEntry.getFile(filename, {create: true, exclusive: false},
function(fileEntry){
var filePath = fileEntry.toNativeURL();
fileEntry.createWriter(
function(fileWriter){
console.log('start writing to: ' + filePath);
fileWriter.write(text);
console.log('file written');
},failureCallback
);
}, failureCallback
);
}
function failureCallback(error){
console.log('error creating file: ' + error.code);
// results in code 1000
}
}
आप बाहरी sdcard के लिए लिखने नई फ़ाइल की एक पूरी काम कर उदाहरण दे सकते हैं? –
मैं इस कोड का उपयोग कर समाप्त हुआ: 'window.resolveLocalFileSystemURL ('फ़ाइल: /// स्टोरेज/extSdCard /', फ़ंक्शन (एफएस) {var nativePath = fs.toURL(); चेतावनी (मूलपाथ);}, फ़ंक्शन (गलती) {चेतावनी (गलती);}); ' –
यह सुनिश्चित नहीं है कि मेरी समस्या कितनी समान थी। लेकिन एंड्रॉइडपेर्सिस्टेंटफाइल लोकेशन को संगतता के लिए एंड्रॉइड की फाइल सिस्टम के साथ कॉर्डोवा v5 + –