gpt4 book ai didi

javascript - 使用 PhoneGap 下载文件并在 AngularJS 中使用

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:18:08 25 4
gpt4 key购买 nike

我正在使用 AngularJS 构建 PhoneGap/Cordova 应用程序。我花了很多时间来了解如何成功地将远程文件下载到设备上。这是我的代码:

download: function() {
console.log('start download');
var remoteFile = "http://remoteserver.domain";
var localFileName = "file.json";

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem) {
fileSystem.root.getFile(localFileName, {create: true}, function(fileEntry) {
var localPath = fileEntry.toURL();
var ft = new FileTransfer();
ft.download(remoteFile,
localPath,
function(entry){console.log(entry)},
function(error){console.log(error.code)}
);
}, function(error){console.log(error.code)});
}, function(error){console.log(error.code)});
}

对于 iOS,FileSystem API 返回的文件的 native 路径是我的应用程序的 Documents 文件夹。但是因为我使用 AngularJS 并且它在 Appname.app 文件夹内的 www 文件夹中运行,所以我不知道如何从 AngularJS 访问该文件,以便它也可以在 Android 和其他支持的操作系统上开箱即用PhoneGap。

所以我想做的是告诉 File API 将文件保存在 Appname.app/www 文件夹中,或者告诉 AngularJS 使用 ../Documents/ 文件夹,但不是特定于平台的。也许我可以使用完全不同的解决方案?

最佳答案

我们已经在我们的应用程序中实现了类似的功能,下面的代码将让您了解它

    $rootScope.download = function(ii,catalogs)
{
var len = catalogs.length;
if(ii==len)
{
localStorage.setItem("catalogdwnld", 1);

if($rootScope.loadingmodal){
$rootScope.loadingmodal.opened.then(function () {
$rootScope.loadingmodal.dismiss( "cancel" );
});

}

}
else if(ii < catalogs.length){


var id = catalogs[ii].id;

/**/

if(catalogs[ii].parentId==0)
{
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, fileSystemSuccess, fileSystemFail);
function fileSystemSuccess(fileSystem) {
var directoryEntry = fileSystem.root; // to get root path to directory
directoryEntry.getDirectory("catalogs", {create: true, exclusive: false}, onDirectorySuccess, onDirectoryFail);
// root directory path
var rootdir = fileSystem.root;
var fp = rootdir.toURL();
// storing images in catalogs folder
fp = fp+"/catalogs/"+id+".png";

var fileTransfer = new FileTransfer();

fileTransfer.download($window.service_url+"/catalog/cover/"+id+"",fp,
function(entry) {
var native_url = entry.toNativeURL();
/***** Store it in db *******/

},
function(error) {
navigator.notification.alert(
'Download failed, please try again',
null,
'Download Failed',
'OK');


}
);
}
}
}

获取您可以使用的根目录路径,

fileSystem.root;

我们将 native 路径存储在数据库中,以便我们稍后可以使用它来显示图像。如果您的应用程序不适合离线使用,那么您可以使用 html4\5 localstorage。

我们已经在 android 和 ios 中测试了以上代码,因此它应该可以在平台上运行。

谢谢..

关于javascript - 使用 PhoneGap 下载文件并在 AngularJS 中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23994825/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com