场景下开发-angular 图片缓存服务
angular 服务
1.$q, imageCache
2.$q, $cordovaFile, $cordovaFileTransfer
服务调用
1.index.html 引入资源文件
2.controller 引入服务名称
3.调用服务
4.服务资源js文件可以自己调用自己
imageCache1.getPic(data.imageid, AmApp.config.Merchant).then( function(result) { $scope.merchantDt.imageid = result; });
imageListCache1 .dealImageList(data["ticketlist"],"imageid",AmApp.config.Merchant) .then( function() { $scope.ticketlist = data.ticketlist; $scope.querycount = data.querycount; console.log($scope.ticketlist); })
.factory('imageListCache1',function($q, imageCache){
console.log('test')
//=================================================
// 图片列表缓存($q, imageCache)
// imageCache.createPath()
// imageCache.getPic(file, typeUrl, defaultUrl)
//=================================================
var imgDeal = function(item, key, typeUrl, callback, defaultUrl){
imageCache.getPic(item[key], typeUrl, defaultUrl).then(function(result) {
item[key] = result;
callback.call(this);
});
}
return{
// init: function(){},
dealImageList: function(list, key, typeUrl, defaultUrl) {
var q = $q.defer();
var deal = 0;
for (var i = 0; i < list.length; i++) {
imgDeal(list[i], key, typeUrl, function() {
deal++;
if (deal == list.length) {
q.resolve('success');
}
}, defaultUrl);
}
return q.promise;
}
// END
}
})
.factory('imageCache1',function($q, $cordovaFile, $cordovaFileTransfer){
//=================================================
// 图片缓存体系($q, $cordovaFile, $cordovaFileTransfer)
// imageCache.createPath()
// imageCache.getPic(file, typeUrl, defaultUrl)
//=================================================
return {
// init: function(){},
getPic: function(file, typeUrl, defaultUrl){
var q = $q.defer();
var icDefaultUrl = "img/merchant/noImage.png";
if (defaultUrl != undefined && defaultUrl != "") {
icDefaultUrl = defaultUrl;
}
if (!file) {
q.resolve(icDefaultUrl);
}
if (!cordova.file) {
// 非手机环境,直接返回连接
var
url = AmApp.config.ServiceImagePath + typeUrl
+ file;
q.resolve(url);
} else {
var path = "";
if (ionic.Platform.isAndroid()) {
path = cordova.file.externalDataDirectory;
} else if (ionic.Platform.isIOS()) {
path = cordova.file.dataDirectory;
}
path += "img/" + typeUrl;
$cordovaFile.readAsDataURL(path, file).then(
function(result) {
q.resolve(result);
},
function() {
// 图片不存在或其他异常,返回拼接的图片url地址并下载图片
String
url = AmApp.config.ServiceImagePath
+ typeUrl + file;
var options = {};
var trustHosts = true;
$cordovaFileTransfer.download(url,
path + file, options,
trustHosts).then(
function(result) {
// q.resolve(url);
}, function(err) {
// q.resolve(url);
});
q.resolve(url);
});
}
return q.promise;
},
createPath: function() {
if (!cordova.file) {
// 非手机环境,不做处理
return;
}
var path = "";
if (ionic.Platform.isAndroid()) {
path = cordova.file.externalDataDirectory;
} else if (ionic.Platform.isIOS()) {
path = cordova.file.dataDirectory;
}
var dir = "img";
$cordovaFile.createDir(path, dir, false).then(
function() {
path += dir + "/";
dir = "merchant";
$cordovaFile
.createDir(path, dir, false)
.then(function() {
}, function() {
});
dir = "module";
$cordovaFile
.createDir(path, dir, false)
.then(function() {
}, function() {
});
},
function() {
path += dir + "/";
dir = "merchant";
$cordovaFile
.createDir(path, dir, false)
.then(function() {
}, function() {
});
dir = "module";
$cordovaFile
.createDir(path, dir, false)
.then(function() {
}, function() {
});
});
},
// end
}
})

浙公网安备 33010602011771号