我在使用cordova的FileTransfer功能时遇到了一些奇怪的问题,并且认为与jQueryMobile框架有关。
我正在使用PhoneGap 2.9.0和jQueryMobile 1.4。我希望应用程序在用户按下按钮时下载文件,但是我收到错误“FileTransfer未定义”。调用下载文件的功能如下:
$(document).on( "pageinit", "#download-page", function( e ) {
$("#downloadBtn").click(BeginDownload);
});
function BeginDownload()
{
$.mobile.loading( 'show', {
text: 'Downloading file',
textVisible: true,
theme: 'a',
html: ""
});
var ft = new FileTransfer();
ft.download(
"http://mydomain.com/myfile.mp3",
DownloadOK, DownloadKO);
}
但是如果我从deviceready事件中调用函数BeginDownload,一切正常并且文件被下载:
document.addEventListener("deviceready", init, false);
function init()
{
BeginDownload();
}
问题是下载文件的按钮不在主页面中。它位于用户必须导航到的另一个页面中,因此当deviceready事件被触发时,该按钮不存在,我无法绑定事件监听器。
我做错了什么?如何从不是主页的页面下载文件?
感谢。