2012-12-21 13 views
7

Pracuję nad aplikacją mobilną za pomocą jquerymobile/phonegap/cordova (2.0). Próbuję pobrać niektóre pliki ze strumienia (xml) i przechowywać je lokalnie. Takie zachowanie pojawia się tylko w przeglądarce Chrome, której używam do debugowania (z marszczeniem).Phonegap Filetransfer.download Ripple/Chrome

Jak uruchomić chrom? Tutaj mamy:

/Aplikacje/Google \ Chrome.app/Contents/MacOS/Google \ Chrome - możliwość wyłączenia bezpieczeństwa w Internecie - łatwy dostęp do plików z plików dostęp

Zajmuję na Mac mój plik plist posiada również dostęp * i dodałam do mojego <feature name="http://api.phonegap.com/1.0/file"/> config.xml

próbowałem ściągnąć kilka zdjęć z następującego kodu:

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, 
    {}, 
    {}); 
} 

Na symulatorze działa dobrze, ale w chrome nie powiedzie się z następującym błędem:

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 

okno dialogowe pojawił się z komunikatem:

FileTransfer.download

Wydaje się, że brakuje kilka rzeczy: (

Co jest fajne, chociaż możesz wypełnić tekst, aby przekazać obiekt Json do żądanego wywołania zwrotnego wykonać.

Widzę jego niezdefiniowane, ale nie mogę zrozumieć, co jest naprawdę mój problem. Jeśli ktoś ma zgadywanie lub podobny problem, proszę o sugestie.

Odpowiedz

10

To dlatego, że wtyczka Ripple dla Chrome nie zaimplementowała tej funkcji. Będzie działać w rzeczywistym środowisku (na przykład w telefonie).

+1

Nie można używać wtyczek. Jeśli chcesz współpracować z systemem operacyjnym, musisz użyć prawdziwego urządzenia. (Symulator iOS działa całkiem nieźle) –

+1

@ChristianKuetbach Tak. Ale używa wtyczki [Ripple] (https://chrome.google.com/webstore/docail/ripple-emulator-beta/geelfhphabnejjhdalkjhgipohgpdnoc) dla przeglądarki Chrome, która próbuje emulować prawdziwe urządzenie w oknie przeglądarki. – krtek

+1

Wiem, ale kluczem jest "próbuje emulować prawdziwe urządzenie". Ten emulator NIGDY nie będzie działał z niestandardowymi wtyczkami. Myślę, że przeglądarka chrome musi być uruchomiona ze zrzuconą zasadą bezpieczeństwa, aby używać systemów plików. Zrezygnowałem z używania emulatorów (oczekuję emulatora iOS), ukrywają prawdziwe problemy i pokazują tylko problemy związane z emulatorem. –