我有问题。在我的sencha触摸应用程序中,我有列表项目,如.pdf,.png,...如果用户点击其中一个文件应该在他的移动设备上下载。 我怎样才能做到这一点?我不知道:-)
感谢您的帮助。
答案 0 :(得分:1)
您可以使用phonegap文件api下载文件,如果您使用的是sencha touch 2.3或更高版本,请按照下面的步骤操作。
通过在项目根目录下执行以下命令在sencha项目中安装phonegap,此命令在项目根目录中创建phonegap文件夹。
sencha phonegap init
您需要通过在phonegap文件夹中执行以下两个命令来安装两个phonegap插件来处理文件api。
$ phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-file.git
$ phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-file-transfer.git
现在你可以在sencha touch中开始处理文件api了,你可以按照我用于我的一个项目的下面的代码。
如果要下载文件,首先需要阅读设备文件系统,然后使用文件系统下载文件。
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(您希望将文件存储在手机中的位置)&以上功能的网址。
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 docs
Ext.device.filesystem.FileEntry
如果您使用的是sencha touch 2.2或更低版本,则只需更改而不是使用sencha类,您需要直接使用phonegap api。
阅读file system& File download关注phonegap文档。
答案 1 :(得分:0)
Sencha基本上运行HTML,CSS& JS。使用Sencha而不是使用Sencha实现它,就像在HTML中执行它一样,然后集成到您的应用程序中。
例如:<a href="Homework.pdf" target="_blank">Homework</a>
答案 2 :(得分:0)
试试这个
document.location = url;
答案 3 :(得分:0)
尝试以下可能对您有用的代码。
var newWindow = window.open('filepath','_ self'); // filepath是带扩展名的文件的路径。