我有离线数据功能,这意味着如果我没有互联网读取我的离线数据文件!但我有例外“类型 '_InternalLinkedHashMap
var offlineData;
var campOfflineDataNew =[];
int campaginDataFilelength =await campaignId_txt.length();
//if Dataversion change data will download for respected shelf .....................
///type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'int'
if(campaginDataFilelength != 0){
try{
final file = File(campaignId_txt.path);
var offline_JSONData = await file.readAsString();
offlineData = json.decode(offline_JSONData);
var OfflineCampList = List<OfflineCampaignShelfList>.from(offlineData["CampaignShelfList"].map((x) => OfflineCampaignShelfList.fromJson(x)));
//campaignId_txt.delete();
CampList.forEach((camp) async{
OfflineCampList.forEach((OfCamp) async {
if(camp.photographerCampaignId == OfCamp.photographerCampaignId){
if(camp.dataVersion != OfCamp.dataVersion){
Directory subCampaignsFolder = Directory(CampaignsFolder.path+camp.photographerCampaignId.toString()+"/");
subCampaignsFolder.create(recursive: true);
File PATH_photographerImageLogoPath = File(subCampaignsFolder.path+"photographerImageLogo.jpg");
File PATH_coverPhoto = File(subCampaignsFolder.path+"coverPhoto.jpg");
File PATH_shelfImagePath = File(subCampaignsFolder.path+"shelfImage.jpg");
File PATH_photographerProfilePhoto = File(subCampaignsFolder.path+"profilePhotoPhotographer.jpg");
Map<String, dynamic> autoDonw = new Map();
var IsPhotoboothUser = {'"IsPhotoboothUser"' : camp.isPhotoboothUser};
var PhotographerId = {'"PhotographerId"' : camp.photographerId};
print("IsPhotoboothUserOffline" + PhotographerId.toString());
var photographerCampaignId = {'"PhotographerCampaignId"' : camp.photographerCampaignId};
var campaignTitle = {'"CampaignTitle"' : '"'+camp.campaignTitle+'"'};
var businessName = {'"BusinessName"' : '"'+camp.businessName+'"'};
var campaignDate = {'"Date"' : '"'+camp.date+'"'};
var coverImagePath = {'"CoverImagePath"' : '"'+PATH_coverPhoto.path+'"'};
var shelfImage = {'"ShelfImagePath"' : '"'+PATH_shelfImagePath.path+'"'};
var photographerProfilePhoto = {'"PhotographerProfilePhoto"' : '"'+PATH_photographerProfilePhoto.path+'"' };
var photographerFullName = {'"PhotographerFullName"' :'"'+camp.photographerFullName+'"'};
var photographerImageLogo = {'"PhotographerImageLogo"' : '"'+PATH_photographerImageLogoPath.path+'"'};
var CampaignFlashScreenHeader = {'"CampaignFlashScreenHeader"' : '"'+camp.campaignFlashScreenHeader+'"'};
var CampaignFlashScreenGretting = {'"CampaignFlashScreenGretting"' : '"'+camp.campaignFlashScreenGretting+'"'};
var CampaignFlashScreenDescription = {'"CampaignFlashScreenDescription"' : '"'+camp.campaignFlashScreenDescription+'"'};
var IsPrimary = {'"IsPrimary"' : camp.isPrimary};
var IsShare = {'"IsShare"' : camp.isShare};
var IsComment = {'"IsComment"' : camp.isComment};
var IsFurtherInvite = {'"IsFurtherInvite"' : camp.isFurtherInvite};
var IsSelectPhotosForAlbumDesign = {'"IsSelectPhotosForAlbumDesign"' : camp.isSelectPhotosForAlbumDesign};
var IsAddPhotos = {'"IsAddPhotos"' : camp.isAddPhotos};
var IsMyself = {'"IsMyself"' : camp.isMyself};
var DataVersion = {'"DataVersion"' : camp.dataVersion};
var IsCampaignLike = {'"IsCampaignLike"' : camp.isCampaignLike};
var IsCampaignSlideShow = {'"IsCampaignSlideShow"' : camp.isCampaignSlideShow};
var IsCampaignFaceMatch = {'"IsCampaignFaceMatch"' : camp.isCampaignFaceMatch};
var isCampaignAlbumDesign = {'"isCampaignAlbumDesign"' : camp.isCampaignAlbumDesign};
var isCampaignPersonalizedPrintingOrders = {'"isCampaignPersonalizedPrintingOrders"' : camp.isCampaignPersonalizedPrintingOrders};
autoDonw.addAll(photographerCampaignId);
autoDonw.addAll(IsPhotoboothUser);
autoDonw.addAll(photographerProfilePhoto);
autoDonw.addAll(photographerFullName);
autoDonw.addAll(photographerImageLogo);
autoDonw.addAll(campaignTitle);
autoDonw.addAll(shelfImage);
autoDonw.addAll(campaignDate);
autoDonw.addAll(businessName);
autoDonw.addAll(coverImagePath);
autoDonw.addAll(CampaignFlashScreenHeader);
autoDonw.addAll(CampaignFlashScreenGretting);
autoDonw.addAll(CampaignFlashScreenDescription);
autoDonw.addAll(IsPrimary);
autoDonw.addAll(IsShare);
autoDonw.addAll(IsComment);
autoDonw.addAll(IsFurtherInvite);
autoDonw.addAll(IsSelectPhotosForAlbumDesign);
autoDonw.addAll(IsAddPhotos);
autoDonw.addAll(IsMyself);
autoDonw.addAll(DataVersion);
autoDonw.addAll(IsCampaignLike);
autoDonw.addAll(IsCampaignSlideShow);
autoDonw.addAll(IsCampaignFaceMatch);
autoDonw.addAll(isCampaignAlbumDesign);
autoDonw.addAll(PhotographerId);
autoDonw.addAll(isCampaignPersonalizedPrintingOrders);
await campOfflineDataNew.add(autoDonw);
await dio.download(camp.photographerImageLogo, PATH_photographerImageLogoPath.path);
await dio.download(camp.coverImagePath, PATH_coverPhoto.path);
await dio.download(camp.shelfImagePath, PATH_shelfImagePath.path);
await dio.download(camp.photographerProfilePhoto, PATH_photographerProfilePhoto.path);
}else{
await campOfflineDataNew.add(json.encode(OfCamp.toJson()));
}
}
});
});
await campaignId_txt.writeAsString('{ "SuccessCode": "S0019","SuccessMessage": "Success.","CampaignShelfList":'+campOfflineDataNew.toString()+"}");
return ShelfList.fromJson(json.decode(offline_JSONData));
}catch(e){
print(e);
}
}
//if Campaign data file is MISSING ... then ....
if(campaginDataFilelength == 0){
print('--------------------------');
for (final camp in CampList) {
Directory subCampaignsFolder = Directory(CampaignsFolder.path+camp.photographerCampaignId.toString()+"/");
subCampaignsFolder.create(recursive: true);
File PATH_photographerImageLogoPath = File(subCampaignsFolder.path+"photographerImageLogo.jpg");
await dio.download(camp.photographerImageLogo, PATH_photographerImageLogoPath.path);
File PATH_coverPhoto = File(subCampaignsFolder.path+"coverPhoto.jpg");
await dio.download(camp.coverImagePath, PATH_coverPhoto.path);
File PATH_shelfImagePath = File(subCampaignsFolder.path+"shelfImage.jpg");
await dio.download(camp.shelfImagePath, PATH_shelfImagePath.path);
File PATH_photographerProfilePhoto = File(subCampaignsFolder.path+"profilePhotoPhotographer.jpg");
await dio.download(camp.photographerProfilePhoto, PATH_photographerProfilePhoto.path);
//var azim = camp.businessName ?? Globals.PhotographerLOGO;
sharedPreferences.setInt("PhotographerCampaignId", camp.photographerCampaignId);
sharedPreferences.setString("PhotographerProfilePhoto", camp.photographerProfilePhoto);
sharedPreferences.setString("PhotographerFullName", camp.photographerFullName);
sharedPreferences.setString("PhotographerImageLogo", camp.photographerImageLogo);
sharedPreferences.setString("CampaignTitle", camp.campaignTitle);
Map<String, dynamic> offlineData = new Map();
var IsPhotoboothUser = {'"IsPhotoboothUser"' : camp.isPhotoboothUser};
var PhotographerId = {'"PhotographerId"' : camp.photographerId};
var photographerCampaignId = {'"PhotographerCampaignId"' : PhotographerId.toString()};
var campaignTitle = {'"CampaignTitle"' : '"'+camp.campaignTitle+'"'};
var businessName = {'"BusinessName"' : '"'+camp.businessName+'"'};
var campaignDate = {'"Date"' : '"'+camp.date+'"'};
var coverImagePath = {'"CoverImagePath"' : '"'+PATH_coverPhoto.path+'"'};
var shelfImage = {'"ShelfImagePath"' : '"'+PATH_shelfImagePath.path+'"'};
var photographerProfilePhoto = {'"PhotographerProfilePhoto"' : '"'+PATH_photographerProfilePhoto.path+'"' };
var photographerFullName = {'"PhotographerFullName"' :'"'+camp.photographerFullName+'"'};
var photographerImageLogo = {'"PhotographerImageLogo"' : '"'+PATH_photographerImageLogoPath.path+'"'};
var CampaignFlashScreenHeader = {'"CampaignFlashScreenHeader"' : '"'+camp.campaignFlashScreenHeader+'"'};
var CampaignFlashScreenGretting = {'"CampaignFlashScreenGretting"' : '"'+camp.campaignFlashScreenGretting+'"'};
var CampaignFlashScreenDescription = {'"CampaignFlashScreenDescription"' : '"'+camp.campaignFlashScreenDescription+'"'};
var IsPrimary = {'"IsPrimary"' : camp.isPrimary};
var IsShare = {'"IsShare"' : camp.isShare};
var IsComment = {'"IsComment"' : camp.isComment};
var IsFurtherInvite = {'"IsFurtherInvite"' : camp.isFurtherInvite};
var IsSelectPhotosForAlbumDesign = {'"IsSelectPhotosForAlbumDesign"' : camp.isSelectPhotosForAlbumDesign};
var IsAddPhotos = {'"IsAddPhotos"' : camp.isAddPhotos};
var IsMyself = {'"IsMyself"' : camp.isMyself};
var DataVersion = {'"DataVersion"' : camp.dataVersion};
var IsCampaignLike = {'"IsCampaignLike"' : camp.isCampaignLike};
var IsCampaignSlideShow = {'"IsCampaignSlideShow"' : camp.isCampaignSlideShow};
var IsCampaignFaceMatch = {'"IsCampaignFaceMatch"' : camp.isCampaignFaceMatch};
var isCampaignAlbumDesign = {'"isCampaignAlbumDesign"' : camp.isCampaignAlbumDesign};
print("IsPhotoboothUser :" + IsPhotoboothUser.toString());
var isCampaignPersonalizedPrintingOrders = {'"isCampaignPersonalizedPrintingOrders"' : camp.isCampaignPersonalizedPrintingOrders};
Globals.PhotoGrapher.add(camp.photographerProfilePhoto);
offlineData.addAll(photographerCampaignId);
offlineData.addAll(IsPhotoboothUser);
offlineData.addAll(photographerProfilePhoto);
offlineData.addAll(photographerFullName);
offlineData.addAll(photographerImageLogo);
offlineData.addAll(campaignTitle);
offlineData.addAll(shelfImage);
offlineData.addAll(campaignDate);
offlineData.addAll(businessName);
offlineData.addAll(coverImagePath);
offlineData.addAll(CampaignFlashScreenHeader);
offlineData.addAll(CampaignFlashScreenGretting);
offlineData.addAll(CampaignFlashScreenDescription);
offlineData.addAll(IsPrimary);
offlineData.addAll(IsShare);
offlineData.addAll(IsComment);
offlineData.addAll(IsFurtherInvite);
offlineData.addAll(IsSelectPhotosForAlbumDesign);
offlineData.addAll(IsAddPhotos);
offlineData.addAll(IsMyself);
offlineData.addAll(DataVersion);
offlineData.addAll(IsCampaignLike);
offlineData.addAll(IsCampaignSlideShow);
offlineData.addAll(IsCampaignFaceMatch);
offlineData.addAll(isCampaignAlbumDesign);
offlineData.addAll(isCampaignPersonalizedPrintingOrders);
offlineData.addAll(PhotographerId);
campgaignData.add(offlineData.toString());
campaignId_txt.writeAsString('{ "SuccessCode": "S0019","SuccessMessage": "Success.","CampaignShelfList":'+campgaignData.toString()+"}");
}
return ShelfList.fromJson(json.decode(response.body));
}
这是我的方法,如果互联网不可用
else if (snapshot.hasError) {
_futureShelf = FirstTimeOffline();
return FutureBuilder<ShelfList>(
future: _futureShelf,
builder: (BuildContext , snapshot) {
if(snapshot.hasData) {
return gridimages(
items: snapshot.data.campaignShelfList,
);
}
else{
Center(child: Text("Something Went Wrong"));
}
return Center(child: Text("offline"));
},
);
}
读取文件功能
Future<ShelfList> FirstTimeOffline() async {
String text;
try {
final file = File(campaignId_txt.path);
text = await file.readAsString();
print("waittttt : " + text);
return ShelfList.fromJson(json.decode(text));
} catch (e) {
print("Couldn't read file"+ e);
///here i m getting exception///
}
}
这是我的txt数据响应文件
{
"SuccessCode": "S0019",
"SuccessMessage": "Success.",
"CampaignShelfList": [
{
"PhotographerCampaignId": {
"PhotographerId": 169
},
"IsPhotoboothUser": 0,
"PhotographerProfilePhoto": "/data/user/0/com.photogranth.photographer/app_flutter/Campaigns/26/profilePhotoPhotographer.jpg",
"PhotographerFullName": "Pratap",
"PhotographerImageLogo": "/data/user/0/com.photogranth.photographer/app_flutter/Campaigns/26/photographerImageLogo.jpg",
"CampaignTitle": "WEDDING",
"ShelfImagePath": "/data/user/0/com.photogranth.photographer/app_flutter/Campaigns/26/shelfImage.jpg",
"Date": "24/04/2021",
"BusinessName": "My Businesss",
"CoverImagePath": "/data/user/0/com.photogranth.photographer/app_flutter/Campaigns/26/coverPhoto.jpg",
"CampaignFlashScreenHeader": "Thank you",
"CampaignFlashScreenGretting": "Thank you",
"CampaignFlashScreenDescription": "Thank you",
"IsPrimary": 1,
"IsShare": 1,
"IsComment": 1,
"IsFurtherInvite": 1,
"IsSelectPhotosForAlbumDesign": 1,
"IsAddPhotos": 1,
"IsMyself": 0,
"DataVersion": 35,
"IsCampaignLike": 1,
"IsCampaignSlideShow": 1,
"IsCampaignFaceMatch": 1,
"isCampaignAlbumDesign": 1,
"isCampaignPersonalizedPrintingOrders": 1,
"PhotographerId": 169
},
{
"PhotographerCampaignId": {
"PhotographerId": 169
},
"IsPhotoboothUser": 0,
"PhotographerProfilePhoto": "/data/user/0/com.photogranth.photographer/app_flutter/Campaigns/2/profilePhotoPhotographer.jpg",
"PhotographerFullName": "Pratap",
"PhotographerImageLogo": "/data/user/0/com.photogranth.photographer/app_flutter/Campaigns/2/photographerImageLogo.jpg",
"CampaignTitle": "TESTING",
"ShelfImagePath": "/data/user/0/com.photogranth.photographer/app_flutter/Campaigns/2/shelfImage.jpg",
"Date": "18/03/2021",
"BusinessName": "My Businesss",
"CoverImagePath": "/data/user/0/com.photogranth.photographer/app_flutter/Campaigns/2/coverPhoto.jpg",
"CampaignFlashScreenHeader": "Thank you",
"CampaignFlashScreenGretting": "Wishing you a lifetime of love and happiness.",
"CampaignFlashScreenDescription": "A",
"IsPrimary": 0,
"IsShare": 1,
"IsComment": 1,
"IsFurtherInvite": 0,
"IsSelectPhotosForAlbumDesign": 0,
"IsAddPhotos": 1,
"IsMyself": 0,
"DataVersion": 39,
"IsCampaignLike": 1,
"IsCampaignSlideShow": 1,
"IsCampaignFaceMatch": 0,
"isCampaignAlbumDesign": 0,
"isCampaignPersonalizedPrintingOrders": 0,
"PhotographerId": 169
}
]
}
答案 0 :(得分:0)
改变这个:
int campaginDataFilelength =await campaignId_txt.length()
进入这个:
int campaginDataFilelength =await campaignId_txt.length
这是我抓到的第一个,会寻找更多。但是代码有点乱。
基本上,你的错误是因为一个变量需要一个 int,但它得到了一个映射。因为您在所有情况下都使用 var
,所以很难判断哪里出错了。
还有这个int campaginDataFilelength =campaignId_txt
您需要获取广告系列 id_text,然后找到它的长度。