2012-12-21 3 views
7

मैं jquerymobile/phonegap/cordova (2.0) का उपयोग कर मोबाइल ऐप पर काम कर रहा हूं। मैं कुछ फ़ाइलों को स्ट्रीम (एक्सएमएल) से डाउनलोड करने की कोशिश करता हूं और उन्हें स्थानीय रूप से स्टोर करता हूं। यह व्यवहार केवल क्रोम ब्राउजर में दिखाई देता है, जिसे मैं डिबगिंग (रिपपल के साथ) के लिए उपयोग करता हूं।फोनगैप Filetransfer.download रिपपल/क्रोम

मैं क्रोम कैसे शुरू करूं? यहां हम जाते हैं:

/एप्लिकेशन/Google \ क्रोम.एप/सामग्री/मैकोज़/Google \ क्रोम - अक्षम-वेब-सुरक्षा - फाइल-एक्सेस-से-फाइलें --allow-file- पहुँच

मैं मैक पर विकसित कर रहा हूँ मेरी plist फ़ाइल भी भी एक पहुँच गया है * और मैं अपने config.xml को <feature name="http://api.phonegap.com/1.0/file"/> जोड़ा

मैं निम्नलिखित कोड के साथ कुछ तस्वीरें डाउनलोड करने के लिए करने की कोशिश की:

function downloadImage(url,filename,use){ 
if(use==="thumb") { 
    filename = filename + ".png"; 
    download(url, filename); 
}return filename; } 

function download(url, filename) { 

//writeLog(window.appRootDir.fullPath); 
ft = new FileTransfer(); 
ft.download(
    url, 
    window.appRootDir.fullPath + "/" + filename, 
    {}, 
    {}); 
} 

सिम्युलेटर पर ठीक काम करता है, लेकिन क्रोम में यह निम्नलिखित त्रुटि के साथ विफल:

TypeError 
ripple.js:477 
TypeError: Cannot call method 'download' of undefined 
at n.exports.exec (chrome-extension://geelfhphabnejjhdalkjhgipohgpdnoc/ripple.js:477:26724) 
at FileTransfer.download (http://localhost/~binderf/www/a4/cordova-2.2.0.js:2753:5) 
at download (http://localhost/~binderf/www/a4/js/index.js:194:5) 
at downloadImage (http://localhost/~binderf/www/a4/js/index.js:182:9) 
at Element.<anonymous> (http://localhost/~binderf/www/a4/js/index.js:153:51) 
at Function.p.extend.each (http://localhost/~binderf/www/a4/js/jquery-1.8.2.min.js:2:14477) 
at p.fn.p.each (http://localhost/~binderf/www/a4/js/jquery-1.8.2.min.js:2:11151) 
at Element.<anonymous> (http://localhost/~binderf/www/a4/js/index.js:145:57) 
at Function.p.extend.each (http://localhost/~binderf/www/a4/js/jquery-1.8.2.min.js:2:14477) 
at p.fn.p.each (http://localhost/~binderf/www/a4/js/jquery-1.8.2.min.js:2:11151) ripple.js:477 
FileTransfer 

FileTransfer ripple.js:483 
download ripple.js:483 
missing exec:FileTransfer.download 

एक संवाद संदेश के साथ पॉप:

FileTransfer.download

हम लापता हो रहे हैं कुछ सामान :(

थोडा अच्छा क्या है, हालांकि आप जो कॉलबैक चाहते हैं उसे जेसन ऑब्जेक्ट पास करने के लिए टेक्स्टरेरा भर सकते हैं निष्पादन हेतु।

मैं इसे अपरिभाषित देखता हूं लेकिन मुझे यह नहीं पता कि वास्तव में मेरी समस्या क्या है। अगर किसी के पास कोई अनुमान या समान समस्या है तो कृपया कोई सुझाव दें।

उत्तर

10

ऐसा इसलिए है क्योंकि क्रोम के लिए रिपल प्लगइन ने इस सुविधा को लागू नहीं किया है। यह वास्तविक वातावरण में काम करेगा (जैसे फोन)।

+1

आप प्लगइन का उपयोग नहीं कर सकते हैं। यदि आप ओएस के साथ बातचीत करना चाहते हैं, तो आपको एक वास्तविक डिवाइस का उपयोग करने की आवश्यकता होगी। (आईओएस सिम्युलेटर काफी अच्छी तरह से काम करता है) –

+1

@ क्रिस्टियनकुएटबाक हां। लेकिन वह क्रोम के लिए [रिपल] (https://chrome.google.com/webstore/detail/ripple-emulator-beta/geelfhphabnejjhdalkjhgipohgpdnoc) प्लगइन का उपयोग करता है जो ब्राउज़र विंडो में वास्तविक डिवाइस का अनुकरण करने का प्रयास करता है। – krtek

+1

मुझे पता है, लेकिन कुंजी "असली डिवाइस अनुकरण करने की कोशिश करती है"। यह एमुलेटर कस्टम प्लगइन्स के साथ कभी काम नहीं करेगा। मुझे लगता है कि फाइल सिस्टम का उपयोग करने के लिए क्रोम ब्राउज़र को एक गिराए गए सुरक्षा नीति के साथ शुरू करना होगा। मैंने अनुकरणकर्ताओं (आईओएस एमुलेटर की उम्मीद) का उपयोग करके छोड़ दिया, वे वास्तविक समस्याओं को छुपाते हैं और केवल एमुलेटर-केवल समस्याएं दिखाते हैं। –