7

我正在使用 jquerymobile/phonegap/cordova(2.0) 开发移动应用程序。我尝试从流(xml)中下载一些文件并将它们存储在本地。此行为仅出现在我用于调试(带有波纹)的 chrome 浏览器中。

如何启动 chrome ?开始了 :

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

我在 Mac 上开发我的 plist 文件也有一个访问权限 * 我添加<feature name="http://api.phonegap.com/1.0/file"/>到我的 config.xml

我尝试使用以下代码下载一些图片:

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

在模拟器上工作正常,但在 chrome 中它失败并出现以下错误:

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

弹出一个对话框,其中包含以下消息:

文件传输.download

我们似乎遗漏了一些东西:(

虽然您可以填写 textarea 以将 json 对象传递给您要执行的回调,但这有点酷。

我看到它未定义,但我无法弄清楚我真正的问题是什么。如果有人有猜测或类似问题,请提出任何建议。

4

1 回答 1

10

这是因为 Chrome 的 Ripple 插件没有实现这个功能。它将在真实环境中工作(例如电话)。

于 2013-01-02T14:25:23.147 回答