gpt4 book ai didi

angularjs - 通过在 ionic 框架中使用 $cordova FileTransfer 将 facebook 个人资料图片下载到移动应用程序存储目录

转载 作者:行者123 更新时间:2023-12-01 00:42:28 24 4
gpt4 key购买 nike

我正在 ionic 中开发应用程序框架。

我在 Controller 中有一个函数应该下载 facebook 个人资料图片,如下所示($rootScope.user_friends 是对象的数组,其中对象的 fb_id 属性具有要下载其个人资料图片的用户的 facebook id) :

$scope.downloadDP = function() {

// Make an API call for getting facebook profile picture URL
Session.userFBProfilePicture($rootScope.user_friends, function(response) {

console.log(response);

});

};

以下是服务/工厂方法:
// Makes API call for user's facebook DP URL
userFBProfilePicture: function(data_array, callback) {

var promises = [];

for (var i = 0; i < data_array.length; i++) {

var deffered = $q.defer();
var data = data_array[i];

$http({
method: 'GET',
url: 'https://graph.facebook.com/' + data.fb_id + '/picture?type=large&redirect=false',
}).
success(function(data) {

var url = data.url;
var targetPath = cordova.file.applicationStorageDirectory + "MyApp/" + data.mobile + ".png";
var trustHosts = true;
var options = {};

$cordovaFileTransfer.download(url, targetPath, options, trustHosts)
.then(function(result) {
deffered.resolve(result);
}, function(err) {
deffered.reject();
});



}).
error(function(error) {
deffered.reject();
});

promises.push(deffered);
}

return $q.all(promises);


},

网络电话到 https://graph.facebook.com/' + data.fb_id + '/picture?type=large&redirect=false url 成功发生,而不是服务器重定向,我得到一个对象,其 data.url给出用户个人资料图片的实际位置。

我引用了这篇博文: https://www.raymondcamden.com/2015/04/13/chaining-multiple-cordova-file-transfers-with-ngcordova/并试图相应地 promise 但徒劳无功。

另外,我在 console.log(response); 中什么也没得到。在 Controller 方法中。我不确定我哪里出错了,非常感谢任何帮助/指示。

最佳答案

我更喜欢使用 async用于异步操作的库,例如通过数组调用数据库或 api。

所以这个功能会像

// Makes API call for user's facebook DP URL
userFBProfilePicture: function(data_array, callback) {

var results_array= [];
var deffered = $q.defer();
async.each(data_array, function(data, callback) {


$http({
method: 'GET',
url: 'https://graph.facebook.com/' + data.fb_id + '/picture?type=large&redirect=false',
}).
then(function(data) {

var url = data.url;
var targetPath = cordova.file.applicationStorageDirectory + "MyApp/" + data.mobile + ".png";
var trustHosts = true;
var options = {};

$cordovaFileTransfer.download(url, targetPath, options, trustHosts)
.then(function(result) {
results_array.push(result);
callback();
}, function(err) {
callback(err);
});



}, function(error) {
callback(error);
});
}, function(err){
// if any of the input produced an error, err would equal that error
if( err ) {
// One of the iterations produced an error.
// All processing will now stop.
return deffered.reject(err);
} else {
return deffered.resolve(results_array);
}
})

return deffered.promise;
},

这个函数会返回一个promise。所以你可以相应地处理它。

关于angularjs - 通过在 ionic 框架中使用 $cordova FileTransfer 将 facebook 个人资料图片下载到移动应用程序存储目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36679243/

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