2012-12-21 25 views
7

Tôi đang làm việc trên một ứng dụng di động sử dụng jquerymobile/phonegap/cordova (2.0). Tôi cố gắng tải xuống một số tệp từ luồng (xml) và lưu chúng cục bộ. Hành vi này chỉ xuất hiện trong trình duyệt chrome, mà tôi sử dụng để gỡ lỗi (với gợn).Phonegap Filetransfer.download Ripple/Chrome

Làm cách nào để bắt đầu chrome? Ở đây chúng tôi đi:

/Applications/Google \ Chrome.app/Contents/MacOS/Google \ Chrome --disable-web-security --allow-file-access-from-files --allow-file- truy cập

tôi đang phát triển tại Mac tập tin plist của tôi cũng còn có một truy cập * và tôi đã thêm <feature name="http://api.phonegap.com/1.0/file"/> để config.xml tôi

tôi cố gắng để tải về một số hình ảnh với đoạn mã sau:

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

On mô phỏng hoạt động tốt nhưng trong chrome nó không thành công với lỗi sau:

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 

một hộp thoại hiện lên với thông điệp:

FileTransfer.download

Chúng tôi dường như mất tích một số nội dung: (

Điều gì là tuyệt vời dù bạn có thể điền vào vùng văn bản để chuyển đối tượng json tới cuộc gọi lại mà bạn muốn để thực hiện.

Tôi thấy không xác định của nó nhưng tôi không thể tìm ra những gì thực sự là vấn đề của tôi. Nếu bất cứ ai có một dự đoán hoặc một vấn đề tương tự xin vui lòng bất cứ đề nghị.

Trả lời

10

Đó là vì plugin Ripple dành cho Chrome chưa triển khai tính năng này. Nó sẽ hoạt động trong môi trường thực (ví dụ: điện thoại).

+1

Bạn không thể sử dụng plugin. Nếu bạn muốn tương tác với hệ điều hành, bạn sẽ cần phải sử dụng một thiết bị thực. (Trình mô phỏng iOS hoạt động khá tốt) –

+1

@ChristianKuetbach Có. Nhưng anh ấy sử dụng plugin [Ripple] (https://chrome.google.com/webstore/detail/ripple-emulator-beta/geelfhphabnejjhdalkjhgipohgpdnoc) cho Chrome cố gắng mô phỏng thiết bị thực trong cửa sổ trình duyệt. – krtek

+1

Tôi biết, nhưng điều quan trọng là "cố gắng cạnh tranh với thiết bị thực". Trình mô phỏng này sẽ KHÔNG BAO GIỜ làm việc với các plugin tùy chỉnh. Tôi nghĩ rằng trình duyệt chrome phải được bắt đầu với chính sách bảo mật bị rớt để sử dụng hệ thống tệp. Tôi đã từ bỏ việc sử dụng trình mô phỏng (giả lập iOS giả lập), chúng ẩn các vấn đề thực và hiển thị các vấn đề chỉ trình giả lập. –