Sencha touch 如何提供文件供下载?
我有个问题。在我的sencha touch应用程序中,我有一些列表项,如.pdf、.png、。。。若用户点击其中一个,那个么文件应该下载到他的移动设备上。 我该怎么做?我不知道:-)Sencha touch 如何提供文件供下载?,sencha-touch,download,hybrid-mobile-app,Sencha Touch,Download,Hybrid Mobile App,我有个问题。在我的sencha touch应用程序中,我有一些列表项,如.pdf、.png、。。。若用户点击其中一个,那个么文件应该下载到他的移动设备上。 我该怎么做?我不知道:-) 感谢您的帮助。Sencha基本上通过HTML、CSS和JS进行操作。与其使用Sencha实现,不如像在HTML中那样实现它,然后集成到应用程序中 例如:试试这个 document.location=url尝试以下代码,它可能会对您有所帮助 var newWindow=window.open('filepath','
感谢您的帮助。Sencha基本上通过HTML、CSS和JS进行操作。与其使用Sencha实现,不如像在HTML中那样实现它,然后集成到应用程序中 例如:
试试这个
document.location=url尝试以下代码,它可能会对您有所帮助
var newWindow=window.open('filepath','u self')//WARE filepath是扩展名为的文件路径。您可以使用phonegap文件api下载文件,如果您使用的是sencha touch 2.3或更高版本,只需遵循以下步骤即可
sencha phonegap init
getFileSystem : function(){
var me =this;
Ext.Viewport.mask({
xtype: 'loadmask',
message: 'Downloading files..'
});
var extfs = Ext.create("Ext.device.filesystem.Cordova");
extfs.requestFileSystem({
type: window.PERSISTENT,
size: 1024 * 1024,
success: function(fSys) {
window.fileSys = fSys;
Ext.Viewport.unmask();
me.fileDownload("myfolder/filename.png","http://someurl");
},
failure: function(error){
alert(error);
Ext.Viewport.unmask();
}
});
}
我在上面的函数中传递fileLocation(您想在手机中存储文件的位置)和url
fileDownload: function(fileLocation,Url){
Ext.Viewport.mask({
xtype: 'loadmask',
message: 'Downloading files..'
});
var me = this;
var fSys = window.fileSys
if(fSys){
var file = Ext.create('Ext.device.filesystem.FileEntry',
fSys.fs.root.toURL() + fileLocation, fSys);
file.download({
source: Url,
success: function(entry){
Ext.Msg.alert('SUCCESS', 'Image successfully downloaded');
Ext.Viewport.unmask();
},
failure: function(error){
Ext.Msg.alert('ERROR', 'Download failed');
Ext.Viewport.unmask();
}
});
}
}
现在可以在internalMemorycard/myfolder/filename.png查看图像
Sencha文档
如果您使用的是sencha touch 2.2或更低版本,唯一的改变是不使用sencha类,您需要直接使用phonegap api
阅读并遵循phonegap文档。您好,谢谢。问题是我不想在浏览器中打开它。我想让用户直接下载文件。:-)谢谢你的评论,但这只是打开了一个新窗口。不是我要找的。嘿,谢谢!但问题是客户端(移动应用程序)不应该知道文件在服务器中的存储位置。意味着服务器必须以某种方式将数据发送到客户端。我说的对吗?我们需要在服务器上生成pdf文件。并将该文件路径发送到客户端。