阅读背景:

apicloud 公共类 common.js 封装实现 ajax请求数据 + 缓存 loading页面等

来源:互联网 
 
 
//设置主题样式
function getskin(dir) {
    /*换皮肤*/
    var skindir = "../../css/skin/" + dir + "/skin1.css";
    //alert(skindir);
    var skin = new auiSkin({
        name: "night", //皮肤样式名字,不能为中文
        skinPath: skindir, //皮肤样式表路径
        default: true, //是否默认立即使用


    });
    //skin.setSkin();
}


//更换主题样式
//getskin('001');




//判断是否为空
function isEmpty(str){
  if(str==null||typeof str=="undefined"||str.trim()==""){
  return true;
  }else{
  return false;
  }
}




function returnNotNullStr(str){
  if(isEmpty(str)){
    return '';
  }else{
    return str;
  }
}
//获取封装api.toast
function mytoast(msg, str_area) {
    api.toast({
        msg: msg,
        duration: 1500,
        location: str_area
    });
}


//关闭当前窗口
/**返回**/
function goback() {
    api.closeWin({});
}


//打开新窗口 dirAndName   ../dir/winname
//checklogin: 1:需要登录才能打开  0:不需要登录就打开
function openNewWin(dirAndName, checklogin,params) {


    //判断是否有参数
    var pageParam = {};
    if(typeof(params) != 'undefined'){
      pageParam = params;
      console.log("openNewWin存在pageparams:"+JSON.stringify(params));
    }
    //判断是否有登陆
    if (checklogin) {
        if (!isLogin()) {
            api.toast({
                msg: '请先登录!',
                duration: 2000,
                location: 'middle'
            });
            api.openWin({
                name: 'user_win',
                url: "widget://html/user/user_win.html",
            });


            return false;
        }
    }


    //拆分得到winows name
    var arr = dirAndName.split('/');
    var name = arr[arr.length - 1];
    //alert(name + ':'+dirAndName+'_win.html');
    //alert(name);
    api.openWin({
        name: name + '_win',
        url: dirAndName + '_win.html',
        bounces: false,
        pageParam:pageParam
    });
}


//打开一个播放器
function showOneVideo(snsShareID,snsTopicID,snsUserID){
  api.openWin({
      name: 'videoshow_win',
      url: './videoshow_win.html',
      pageParam: {
          snsShareID: snsShareID,
          snsTopicID: snsTopicID,
          snsUserID : snsUserID
      }
    });
}
//时间戳转换成日期格式 2010-10-20
function getLocalTime(mytime) {


  var now=new Date(parseInt(mytime));
  var year=now.getFullYear();
  var month=now.getMonth()+1;
  var date=now.getDate();
  var hour=now.getHours();
  var minute=now.getMinutes();
  var second=now.getSeconds();
  if(minute<10){
      minute="0"+minute;
  }
  if(second<10){
      second="0"+second;
  }
  return year+"-"+month+"-"+date+" "+hour+":"+minute;
  return year+"-"+month+"-"+date;
}


//top.dateFtt("yyyy-MM-dd hh:mm:ss",crtTime);
function dateFtt(fmt,mytime)
{ //author: meizz
  var date = new Date(parseInt(mytime));
  var o = {
    "M+" : date.getMonth()+1,                 //月份
    "d+" : date.getDate(),                    //日
    "h+" : date.getHours(),                   //小时
    "m+" : date.getMinutes(),                 //分
    "s+" : date.getSeconds(),                 //秒
    "q+" : Math.floor((date.getMonth()+3)/3), //季度
    "S"  : date.getMilliseconds()             //毫秒
  };
  if(/(y+)/.test(fmt))
    fmt=fmt.replace(RegExp.
 
 
//设置主题样式
function getskin(dir) {
    /*换皮肤*/
    var skindir = "../../css/skin/" + dir + "/skin1.css";
    //alert(skindir);
    var skin = new auiSkin({
        name: "night", //皮肤样式名字,不能为中文
        skinPath: skindir, //皮肤样式表路径
        default: true, //是否默认立即使用


    });
    //skin.setSkin();
}


//更换主题样式
//getskin('001');




//判断是否为空
function isEmpty(str){
  if(str==null||typeof str=="undefined"||str.trim()==""){
  return true;
  }else{
  return false;
  }
}




function returnNotNullStr(str){
  if(isEmpty(str)){
    return '';
  }else{
    return str;
  }
}
//获取封装api.toast
function mytoast(msg, str_area) {
    api.toast({
        msg: msg,
        duration: 1500,
        location: str_area
    });
}


//关闭当前窗口
/**返回**/
function goback() {
    api.closeWin({});
}


//打开新窗口 dirAndName   ../dir/winname
//checklogin: 1:需要登录才能打开  0:不需要登录就打开
function openNewWin(dirAndName, checklogin,params) {


    //判断是否有参数
    var pageParam = {};
    if(typeof(params) != 'undefined'){
      pageParam = params;
      console.log("openNewWin存在pageparams:"+JSON.stringify(params));
    }
    //判断是否有登陆
    if (checklogin) {
        if (!isLogin()) {
            api.toast({
                msg: '请先登录!',
                duration: 2000,
                location: 'middle'
            });
            api.openWin({
                name: 'user_win',
                url: "widget://html/user/user_win.html",
            });


            return false;
        }
    }


    //拆分得到winows name
    var arr = dirAndName.split('/');
    var name = arr[arr.length - 1];
    //alert(name + ':'+dirAndName+'_win.html');
    //alert(name);
    api.openWin({
        name: name + '_win',
        url: dirAndName + '_win.html',
        bounces: false,
        pageParam:pageParam
    });
}


//打开一个播放器
function showOneVideo(snsShareID,snsTopicID,snsUserID){
  api.openWin({
      name: 'videoshow_win',
      url: './videoshow_win.html',
      pageParam: {
          snsShareID: snsShareID,
          snsTopicID: snsTopicID,
          snsUserID : snsUserID
      }
    });
}
//时间戳转换成日期格式 2010-10-20
function getLocalTime(mytime) {


  var now=new Date(parseInt(mytime));
  var year=now.getFullYear();
  var month=now.getMonth()+1;
  var date=now.getDate();
  var hour=now.getHours();
  var minute=now.getMinutes();
  var second=now.getSeconds();
  if(minute<10){
      minute="0"+minute;
  }
  if(second<10){
      second="0"+second;
  }
  return year+"-"+month+"-"+date+" "+hour+":"+minute;
  return year+"-"+month+"-"+date;
}


//top.dateFtt("yyyy-MM-dd hh:mm:ss",crtTime);
function dateFtt(fmt,mytime)
{ //author: meizz
  var date = new Date(parseInt(mytime));
  var o = {
    "M+" : date.getMonth()+1,                 //月份
    "d+" : date.getDate(),                    //日
    "h+" : date.getHours(),                   //小时
    "m+" : date.getMinutes(),                 //分
    "s+" : date.getSeconds(),                 //秒
    "q+" : Math.floor((date.getMonth()+3)/3), //季度
    "S"  : date.getMilliseconds()             //毫秒
  };
  if(/(y+)/.test(fmt))
    fmt=fmt.replace(RegExp.$1, (date.getFullYear()+"").substr(4 - RegExp.$1.length));
  for(var k in o)
    if(new RegExp("("+ k +")").test(fmt))
  fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
  return fmt;
}




//判断
function isLogin() {
    var currendUID = $api.getStorage('snsUserID');
    if ( typeof(currendUID) != undefined && typeof(currendUID) != 'undefined' && currendUID != null) {
        console.log("--------------------------------已经登录----------------------");
        return true;
    } else {
        console.log("--------------------------------没有登录----------------------");
        return false;
    }
}


//验证手机号
function checkTel(tel) {


    if (!(/^1[34578]\d{9}$/.test(tel))) {
        return false;
    } else {
        return true;
    }
}


// 验证是否为正整数
/*function isIntNum(val){
    var regPos = / ^\d+$/; // 非负整数
    var regNeg = /^\-[1-9][0-9]*$/; // 负整数
    if(regPos.test(val) || regNeg.test(val)){
        return true;
    }else{
      console.log("不是数字");
        return false;
    }
}*/
//判断是否为正整数
function isPositiveInteger(s){//是否为正整数
     var re = /^[0-9]+$/ ;
     return re.test(s)
 }
//判断是否为数字  包含小数
function isNumber(num) {
  if (parseFloat(num).toString() == "NaN") {
    return false;
  } else {
    return true;
  }
}


//回到主界面
function backHomeWin() {
    //这个是回到主界面不会回到userwin
    api.closeToWin({
        name: 'root'
    });
}


//加载更多数据 显示 没有更多数据
function noMoreData() {
    //隐藏loading
    var hasMoreDom = $api.byId('hasmore');
    $api.addCls(hasMoreDom, 'aui-hide');
    //显示没有更多数据了
    var noMoreDom = $api.byId('nomore');
    $api.removeCls(noMoreDom, 'aui-hide');


}


//获取头像
function getUserHead(domid) {
    var imgsrc = $api.getStorage('snsUserHeadImage');
    //如果设置了头像
    if (imgsrc) {
        console.log("缓存的头像是" + imgsrc);
        var fs = api.require('fs');
        fs.exist({
            path: imgsrc
        }, function(ret, err) {
            if (ret.exist) {
                console.log("已经找到缓存头像:" + imgsrc);
                var imgDiv = $api.byId(domid);
                imgDiv.src = imgsrc;


            } else {
                //jieguo=false;
                console.log("缓存里面找不到头像图片");
            }
        });
    }


}


//缓存图片并返回  本地图片地址
function downloadSaveImage(imgurl, savePath) {
    var mypath;
    api.download({
        url: imgurl,
        savePath: savePath, //savePath: 'fs://head/head.png',
        report: true,
        cache: true,
        allowResume: true
    }, function(ret, err) {
        console.log("正在缓存图片imgurl结果是:" + JSON.stringify(ret));
        console.log("缓存图片错误:" + JSON.stringify(err));
        if (ret.state == 1) {
            mypath = ret.savePath;
        } else {
            mypath = false;
        }


    });


}




//没有默认图片地址 随机整数
function nub(minNum, maxNum) {
    switch (arguments.length) {
        case 1:
            return parseInt(Math.random() * minNum + 1);
            break;
        case 2:
            return parseInt(Math.random() * (maxNum - minNum + 1) + minNum);
            break;
        default:
            return 0;
            break;
    }
}






//缓存图片并存入$api.setStorage
function saveSnsHeadImg(imgurl, savepath) {
    api.download({
        url: imgurl,
        savePath: savepath, //savePath: 'fs://head/head.png',
        report: true,
        cache: true,
        allowResume: true
    }, function(ret, err) {


        console.log("正在缓存图片imgurl结果是:" + JSON.stringify(ret));
        if (ret.state == 1) {
            console.log("头像已经缓存 地址是:" + ret.savePath);
            $api.setStorage('snsUserHeadImage', ret.savePath);
            //发送消息 头像已经更改
            api.sendEvent({
                name: 'changmyhead',
                extra: {
                    headImgUrl: ret.savePath,
                }
            });


        } else {
            console.log("缓存图片错误:" + JSON.stringify(err));
        }


    });
}


//全屏加载中...
function loadingFullScreen(str) {
    var load = $api.byId('loadingFullScreen');
    //var html = '<div class="cf-font2" id="loadingFullScreen"><div class="loadBox clearfix"><div class="loadingBtn"><\/div><\/div><\/div>';
    var html = '<div class="cf-font2" id="loadingFullScreen"><div class="loadBox clearfix"><div class="rotate-loader"><\/div><\/div><\/div>';
    var htmlBox = document.documentElement;
    var bodyBox = document.body;
    if (load) {
        console.log("fullLoading存在");
    } else {
        console.log("fullLoading不存在");
        $api.append(document.body, html);
    }


    var load = $api.byId('loadingFullScreen');
    if (str) {
        load.style.display = 'block';
        load.addEventListener('touchmove', gundongEvent);
        //隐藏无网络框框
        notOnLine(false);


    } else {
        load.removeEventListener('click',gundongEvent,false);
        load.style.display = 'none';
    }


}


//无网络...
function notOnLine(str,callback) {
    var onlineBox = $api.byId('notOnLine');
    var path = "widget://res/nowifi-png.txt";
    var fs = api.require('fs');
    var urls = api.readFile({
        sync: true,
        path: path
    });
    var html = '<div class="cf-font2" id="notOnLine"><div class="notice clearfix" onclick="javascript:' + callback + '"><img src="'+urls+'" \/><div class="aui-font-size-14" style="color:#D1D2D4"  >网络异常、点击重新加载<\/div><\/div><\/div>';
    if (str) {
        console.log('callback' + callback);
        if (!onlineBox){
            $api.append(document.body, html);
        }
        var onlineBox = $api.byId('notOnLine');
        onlineBox.style.display = 'block';
        onlineBox.addEventListener('touchmove',gundongEvent);
        //隐藏loading框
        loadingFullScreen(false);
    } else {
        if(onlineBox){
          onlineBox.style.display = 'none';
        }


    }
}




var gundongEvent = function(event) {
    event.preventDefault();
}




//--------------------------------------------------------------------缓存相关-----------------------------------------------------------


//更换主题样式
//getskin('001');


//获取数据 并缓存 不使用全屏loading
function ajaxCacheData(folder, id, url,method,datas,callback) {
    readFile('/' + folder + '/' + id + '.json', function(ret, err) {
        if (ret.status) {
            //如果成功,说明有本地存储,读取时转换下数据格式
            //拼装json代码
            var cacheData = ret.data;
            console.log('/' + folder + '/' + id + '.json'+" 从缓存文件读取数据为:"+cacheData);
            callback(JSON.parse(cacheData));
            //iCache($('.cache'));
            //再远程取一下数据,防止有更新
            ajaxRequest(url, method, datas, function(ret, err) {
                console.log("对比更新 ret:"+JSON.stringify(ret)+"err"+JSON.stringify(err));
                if (ret) {
                    if(ret.code==200){
                        if (cacheData != JSON.stringify(ret)) {
                          console.log("----------有更新 处理返回数据");
                            //有更新处理返回数据
                            callback(ret);
                            //缓存数据
                            writeFile(ret, id, folder);
                            //iCache($('.cache'));
                        }else{
                          console.log("----------未更新内容 只读缓存内容");
                        }
                    }else{
                      //有缓存对比更新:加载失败
                      mytoast('加载失败',"middle");
                    }


                } else {
                    //有缓存对比更新:网络异常
                    mytoast('网络异常',"middle");
                }
            })
        } else {
            //如果失败则从服务器读取,利用上面的那个ajaxRequest方法从服务器GET数据
            ajaxRequest(url, method, datas, function(ret, err) {
              console.log("###########################无缓存重新请求ret:#######################"+JSON.stringify(ret)+"err"+JSON.stringify(err));
                if (ret) {
                    if(ret.code==200){
                      //处理返回数据
                      callback(ret);
                      //缓存数据
                      writeFile(ret, id, folder);
                      //iCache($('.cache'));
                    }else{
                      api.hideProgress();
                      mytoast('没有缓存:加载失败',"middle");
                    }


                } else {
                    api.hideProgress();
                    mytoast('没有缓存:网络异常',"middle");
                }
            })
        }
    })
}




//获取数据 并缓存 使用全屏loading
function ajaxCacheData2(folder, id, url,method,datas,refreshmethod,callback) {
    readFile('/' + folder + '/' + id + '.json', function(ret, err) {
        if (ret.status) {
            //如果成功,说明有本地存储,读取时转换下数据格式
            //拼装json代码
            //alert('取到缓存')
            var cacheData = ret.data;
            console.log('/' + folder + '/' + id + '.json'+" 从缓存文件读取数据为:"+cacheData);
            callback(JSON.parse(cacheData));
            loadingFullScreen(false);
            notOnLine(false);
            //iCache($('.cache'));
            //再远程取一下数据,防止有更新
            ajaxRequest(url, method, datas, function(ret, err) {
                console.log("对比更新 ret:"+JSON.stringify(ret)+"err"+JSON.stringify(err));
                if (ret) {
                    if(ret.code==200){
                        if (cacheData != JSON.stringify(ret)) {
                          console.log("----------有更新 处理返回数据");
                            //有更新处理返回数据
                            //alert('更新缓存')
                            callback(ret);
                            //缓存数据
                            writeFile(ret, id, folder);
                            //iCache($('.cache'));
                        }else{
                          console.log("----------未更新内容 只读缓存内容");
                        }
                    }else{
                          console.log("----------有更新 加载失败");
                    }


                } else {
                    mytoast('有缓存对比更新:网络异常',"middle");
                }
            })
        } else {
            //如果失败则从服务器读取,利用上面的那个ajaxRequest方法从服务器GET数据
            ajaxRequest(url, method, datas, function(ret, err) {
              console.log(JSON.stringify(datas));
              console.log("###########################无缓存重新请求ret:#######################"+url+JSON.stringify(ret)+"err"+JSON.stringify(err));
                if (ret) {
                    if(ret.code==200){
                      //处理返回数据
                      //alert('没取到缓存')
                      callback(ret);
                      api.hideProgress();
                      loadingFullScreen(false);
                      notOnLine(false);
                      //缓存数据
                      writeFile(ret, id, folder);
                      //iCache($('.cache'));
                    }else{
                      api.hideProgress();
                      loadingFullScreen(false);
                      notOnLine(true,refreshmethod);
                      console.log('没有缓存:加载失败',"middle");
                    }


                } else {
                    api.hideProgress();
                    loadingFullScreen(false);
                    notOnLine(true,refreshmethod);
                    console.log('没有缓存:网络异常',"middle");
                }
            })
        }
    })
}


//ajax请求
function ajaxRequest(url, method, datas, callBack) {
    var accessToken = $api.getStorage("accessToken");
    if( accessToken == 'undefined'){
      accessToken = 'ad035964311b7f2b.1628500a86f.6afe393b';


    }
    console.log("当前--------accessToken:"+accessToken);
    var serverUrl = APPconfig.ApiDomain.ajaxDomain;//全局里面配置
    var now = Date.now();
    if(method=='get'){
      sendData={};
    }
    api.ajax({
        url: serverUrl + url,
        method: method,
        cache: false,
        timeout: 5,
        dataType: 'json',
        headers:{Authorization:accessToken},
        data: {values: datas}
    }, function(ret, err) {
        callBack(ret, err);
    });
}






//读文件
function readFile(path, callBack) {
    var cacheDir = api.cacheDir;
    api.readFile({
        path: cacheDir + path
    }, function(ret, err) {
        callBack(ret, err);
    });
}
//写文件
function writeFile(json, id, path) {
    //缓存目录
    var cacheDir = api.cacheDir;
    api.writeFile({
        //保存路径
        path: cacheDir + '/' + path + '/' + id + '.json',
        //保存数据,记得转换格式
        data: JSON.stringify(json)
    }, function(ret, err) {


    })
}


//缓存图片
function iCache(selector) {
    selector.each(function(data) {
        ! function(data) {
            var url = selector.eq(data).attr("src");
            var img = this;
            var pos = url.lastIndexOf("/");
            var filename = url.substring(pos + 1);
            var path = api.cacheDir + "/pic/" + filename;
            var obj = api.require('fs');
            obj.exist({
                path: path
            }, function(ret, err) {
                //msg(ret);
                if (ret.exist) {
                    if (ret.directory) {
                        //api.alert({msg:'该路径指向一个文件夹'});
                    } else {
                        //api.alert({msg:'该路径指向一个文件'});
                        //selector.eq(data).src=path;
                        selector.eq(data).attr('src', null);
                        path = api.cacheDir + "/pic/" + filename;
                        selector.eq(data).attr('src', path);
                        //console.log(selector.eq(data).attr("src"));
                    }
                } else {
                    api.download({
                        url: url,
                        savePath: path,
                        report: false,
                        cache: true,
                        allowResume: true
                    }, function(ret, err) {
                        //msg(ret);
                        if (ret) {
                            var value = ('文件大小:' + ret.fileSize + ';下载进度:' + ret.percent + ';下载状态' + ret.state + '存储路径: ' + ret.savePath);
                        } else {
                            var value = err.msg;
                        };
                    });
                }
            });
        }(data);
    });
};



, (date.getFullYear()+"").substr(4 - RegExp.
 
 
//设置主题样式
function getskin(dir) {
    /*换皮肤*/
    var skindir = "../../css/skin/" + dir + "/skin1.css";
    //alert(skindir);
    var skin = new auiSkin({
        name: "night", //皮肤样式名字,不能为中文
        skinPath: skindir, //皮肤样式表路径
        default: true, //是否默认立即使用


    });
    //skin.setSkin();
}


//更换主题样式
//getskin('001');




//判断是否为空
function isEmpty(str){
  if(str==null||typeof str=="undefined"||str.trim()==""){
  return true;
  }else{
  return false;
  }
}




function returnNotNullStr(str){
  if(isEmpty(str)){
    return '';
  }else{
    return str;
  }
}
//获取封装api.toast
function mytoast(msg, str_area) {
    api.toast({
        msg: msg,
        duration: 1500,
        location: str_area
    });
}


//关闭当前窗口
/**返回**/
function goback() {
    api.closeWin({});
}


//打开新窗口 dirAndName   ../dir/winname
//checklogin: 1:需要登录才能打开  0:不需要登录就打开
function openNewWin(dirAndName, checklogin,params) {


    //判断是否有参数
    var pageParam = {};
    if(typeof(params) != 'undefined'){
      pageParam = params;
      console.log("openNewWin存在pageparams:"+JSON.stringify(params));
    }
    //判断是否有登陆
    if (checklogin) {
        if (!isLogin()) {
            api.toast({
                msg: '请先登录!',
                duration: 2000,
                location: 'middle'
            });
            api.openWin({
                name: 'user_win',
                url: "widget://html/user/user_win.html",
            });


            return false;
        }
    }


    //拆分得到winows name
    var arr = dirAndName.split('/');
    var name = arr[arr.length - 1];
    //alert(name + ':'+dirAndName+'_win.html');
    //alert(name);
    api.openWin({
        name: name + '_win',
        url: dirAndName + '_win.html',
        bounces: false,
        pageParam:pageParam
    });
}


//打开一个播放器
function showOneVideo(snsShareID,snsTopicID,snsUserID){
  api.openWin({
      name: 'videoshow_win',
      url: './videoshow_win.html',
      pageParam: {
          snsShareID: snsShareID,
          snsTopicID: snsTopicID,
          snsUserID : snsUserID
      }
    });
}
//时间戳转换成日期格式 2010-10-20
function getLocalTime(mytime) {


  var now=new Date(parseInt(mytime));
  var year=now.getFullYear();
  var month=now.getMonth()+1;
  var date=now.getDate();
  var hour=now.getHours();
  var minute=now.getMinutes();
  var second=now.getSeconds();
  if(minute<10){
      minute="0"+minute;
  }
  if(second<10){
      second="0"+second;
  }
  return year+"-"+month+"-"+date+" "+hour+":"+minute;
  return year+"-"+month+"-"+date;
}


//top.dateFtt("yyyy-MM-dd hh:mm:ss",crtTime);
function dateFtt(fmt,mytime)
{ //author: meizz
  var date = new Date(parseInt(mytime));
  var o = {
    "M+" : date.getMonth()+1,                 //月份
    "d+" : date.getDate(),                    //日
    "h+" : date.getHours(),                   //小时
    "m+" : date.getMinutes(),                 //分
    "s+" : date.getSeconds(),                 //秒
    "q+" : Math.floor((date.getMonth()+3)/3), //季度
    "S"  : date.getMilliseconds()             //毫秒
  };
  if(/(y+)/.test(fmt))
    fmt=fmt.replace(RegExp.$1, (date.getFullYear()+"").substr(4 - RegExp.$1.length));
  for(var k in o)
    if(new RegExp("("+ k +")").test(fmt))
  fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
  return fmt;
}




//判断
function isLogin() {
    var currendUID = $api.getStorage('snsUserID');
    if ( typeof(currendUID) != undefined && typeof(currendUID) != 'undefined' && currendUID != null) {
        console.log("--------------------------------已经登录----------------------");
        return true;
    } else {
        console.log("--------------------------------没有登录----------------------");
        return false;
    }
}


//验证手机号
function checkTel(tel) {


    if (!(/^1[34578]\d{9}$/.test(tel))) {
        return false;
    } else {
        return true;
    }
}


// 验证是否为正整数
/*function isIntNum(val){
    var regPos = / ^\d+$/; // 非负整数
    var regNeg = /^\-[1-9][0-9]*$/; // 负整数
    if(regPos.test(val) || regNeg.test(val)){
        return true;
    }else{
      console.log("不是数字");
        return false;
    }
}*/
//判断是否为正整数
function isPositiveInteger(s){//是否为正整数
     var re = /^[0-9]+$/ ;
     return re.test(s)
 }
//判断是否为数字  包含小数
function isNumber(num) {
  if (parseFloat(num).toString() == "NaN") {
    return false;
  } else {
    return true;
  }
}


//回到主界面
function backHomeWin() {
    //这个是回到主界面不会回到userwin
    api.closeToWin({
        name: 'root'
    });
}


//加载更多数据 显示 没有更多数据
function noMoreData() {
    //隐藏loading
    var hasMoreDom = $api.byId('hasmore');
    $api.addCls(hasMoreDom, 'aui-hide');
    //显示没有更多数据了
    var noMoreDom = $api.byId('nomore');
    $api.removeCls(noMoreDom, 'aui-hide');


}


//获取头像
function getUserHead(domid) {
    var imgsrc = $api.getStorage('snsUserHeadImage');
    //如果设置了头像
    if (imgsrc) {
        console.log("缓存的头像是" + imgsrc);
        var fs = api.require('fs');
        fs.exist({
            path: imgsrc
        }, function(ret, err) {
            if (ret.exist) {
                console.log("已经找到缓存头像:" + imgsrc);
                var imgDiv = $api.byId(domid);
                imgDiv.src = imgsrc;


            } else {
                //jieguo=false;
                console.log("缓存里面找不到头像图片");
            }
        });
    }


}


//缓存图片并返回  本地图片地址
function downloadSaveImage(imgurl, savePath) {
    var mypath;
    api.download({
        url: imgurl,
        savePath: savePath, //savePath: 'fs://head/head.png',
        report: true,
        cache: true,
        allowResume: true
    }, function(ret, err) {
        console.log("正在缓存图片imgurl结果是:" + JSON.stringify(ret));
        console.log("缓存图片错误:" + JSON.stringify(err));
        if (ret.state == 1) {
            mypath = ret.savePath;
        } else {
            mypath = false;
        }


    });


}




//没有默认图片地址 随机整数
function nub(minNum, maxNum) {
    switch (arguments.length) {
        case 1:
            return parseInt(Math.random() * minNum + 1);
            break;
        case 2:
            return parseInt(Math.random() * (maxNum - minNum + 1) + minNum);
            break;
        default:
            return 0;
            break;
    }
}






//缓存图片并存入$api.setStorage
function saveSnsHeadImg(imgurl, savepath) {
    api.download({
        url: imgurl,
        savePath: savepath, //savePath: 'fs://head/head.png',
        report: true,
        cache: true,
        allowResume: true
    }, function(ret, err) {


        console.log("正在缓存图片imgurl结果是:" + JSON.stringify(ret));
        if (ret.state == 1) {
            console.log("头像已经缓存 地址是:" + ret.savePath);
            $api.setStorage('snsUserHeadImage', ret.savePath);
            //发送消息 头像已经更改
            api.sendEvent({
                name: 'changmyhead',
                extra: {
                    headImgUrl: ret.savePath,
                }
            });


        } else {
            console.log("缓存图片错误:" + JSON.stringify(err));
        }


    });
}


//全屏加载中...
function loadingFullScreen(str) {
    var load = $api.byId('loadingFullScreen');
    //var html = '<div class="cf-font2" id="loadingFullScreen"><div class="loadBox clearfix"><div class="loadingBtn"><\/div><\/div><\/div>';
    var html = '<div class="cf-font2" id="loadingFullScreen"><div class="loadBox clearfix"><div class="rotate-loader"><\/div><\/div><\/div>';
    var htmlBox = document.documentElement;
    var bodyBox = document.body;
    if (load) {
        console.log("fullLoading存在");
    } else {
        console.log("fullLoading不存在");
        $api.append(document.body, html);
    }


    var load = $api.byId('loadingFullScreen');
    if (str) {
        load.style.display = 'block';
        load.addEventListener('touchmove', gundongEvent);
        //隐藏无网络框框
        notOnLine(false);


    } else {
        load.removeEventListener('click',gundongEvent,false);
        load.style.display = 'none';
    }


}


//无网络...
function notOnLine(str,callback) {
    var onlineBox = $api.byId('notOnLine');
    var path = "widget://res/nowifi-png.txt";
    var fs = api.require('fs');
    var urls = api.readFile({
        sync: true,
        path: path
    });
    var html = '<div class="cf-font2" id="notOnLine"><div class="notice clearfix" onclick="javascript:' + callback + '"><img src="'+urls+'" \/><div class="aui-font-size-14" style="color:#D1D2D4"  >网络异常、点击重新加载<\/div><\/div><\/div>';
    if (str) {
        console.log('callback' + callback);
        if (!onlineBox){
            $api.append(document.body, html);
        }
        var onlineBox = $api.byId('notOnLine');
        onlineBox.style.display = 'block';
        onlineBox.addEventListener('touchmove',gundongEvent);
        //隐藏loading框
        loadingFullScreen(false);
    } else {
        if(onlineBox){
          onlineBox.style.display = 'none';
        }


    }
}




var gundongEvent = function(event) {
    event.preventDefault();
}




//--------------------------------------------------------------------缓存相关-----------------------------------------------------------


//更换主题样式
//getskin('001');


//获取数据 并缓存 不使用全屏loading
function ajaxCacheData(folder, id, url,method,datas,callback) {
    readFile('/' + folder + '/' + id + '.json', function(ret, err) {
        if (ret.status) {
            //如果成功,说明有本地存储,读取时转换下数据格式
            //拼装json代码
            var cacheData = ret.data;
            console.log('/' + folder + '/' + id + '.json'+" 从缓存文件读取数据为:"+cacheData);
            callback(JSON.parse(cacheData));
            //iCache($('.cache'));
            //再远程取一下数据,防止有更新
            ajaxRequest(url, method, datas, function(ret, err) {
                console.log("对比更新 ret:"+JSON.stringify(ret)+"err"+JSON.stringify(err));
                if (ret) {
                    if(ret.code==200){
                        if (cacheData != JSON.stringify(ret)) {
                          console.log("----------有更新 处理返回数据");
                            //有更新处理返回数据
                            callback(ret);
                            //缓存数据
                            writeFile(ret, id, folder);
                            //iCache($('.cache'));
                        }else{
                          console.log("----------未更新内容 只读缓存内容");
                        }
                    }else{
                      //有缓存对比更新:加载失败
                      mytoast('加载失败',"middle");
                    }


                } else {
                    //有缓存对比更新:网络异常
                    mytoast('网络异常',"middle");
                }
            })
        } else {
            //如果失败则从服务器读取,利用上面的那个ajaxRequest方法从服务器GET数据
            ajaxRequest(url, method, datas, function(ret, err) {
              console.log("###########################无缓存重新请求ret:#######################"+JSON.stringify(ret)+"err"+JSON.stringify(err));
                if (ret) {
                    if(ret.code==200){
                      //处理返回数据
                      callback(ret);
                      //缓存数据
                      writeFile(ret, id, folder);
                      //iCache($('.cache'));
                    }else{
                      api.hideProgress();
                      mytoast('没有缓存:加载失败',"middle");
                    }


                } else {
                    api.hideProgress();
                    mytoast('没有缓存:网络异常',"middle");
                }
            })
        }
    })
}




//获取数据 并缓存 使用全屏loading
function ajaxCacheData2(folder, id, url,method,datas,refreshmethod,callback) {
    readFile('/' + folder + '/' + id + '.json', function(ret, err) {
        if (ret.status) {
            //如果成功,说明有本地存储,读取时转换下数据格式
            //拼装json代码
            //alert('取到缓存')
            var cacheData = ret.data;
            console.log('/' + folder + '/' + id + '.json'+" 从缓存文件读取数据为:"+cacheData);
            callback(JSON.parse(cacheData));
            loadingFullScreen(false);
            notOnLine(false);
            //iCache($('.cache'));
            //再远程取一下数据,防止有更新
            ajaxRequest(url, method, datas, function(ret, err) {
                console.log("对比更新 ret:"+JSON.stringify(ret)+"err"+JSON.stringify(err));
                if (ret) {
                    if(ret.code==200){
                        if (cacheData != JSON.stringify(ret)) {
                          console.log("----------有更新 处理返回数据");
                            //有更新处理返回数据
                            //alert('更新缓存')
                            callback(ret);
                            //缓存数据
                            writeFile(ret, id, folder);
                            //iCache($('.cache'));
                        }else{
                          console.log("----------未更新内容 只读缓存内容");
                        }
                    }else{
                          console.log("----------有更新 加载失败");
                    }


                } else {
                    mytoast('有缓存对比更新:网络异常',"middle");
                }
            })
        } else {
            //如果失败则从服务器读取,利用上面的那个ajaxRequest方法从服务器GET数据
            ajaxRequest(url, method, datas, function(ret, err) {
              console.log(JSON.stringify(datas));
              console.log("###########################无缓存重新请求ret:#######################"+url+JSON.stringify(ret)+"err"+JSON.stringify(err));
                if (ret) {
                    if(ret.code==200){
                      //处理返回数据
                      //alert('没取到缓存')
                      callback(ret);
                      api.hideProgress();
                      loadingFullScreen(false);
                      notOnLine(false);
                      //缓存数据
                      writeFile(ret, id, folder);
                      //iCache($('.cache'));
                    }else{
                      api.hideProgress();
                      loadingFullScreen(false);
                      notOnLine(true,refreshmethod);
                      console.log('没有缓存:加载失败',"middle");
                    }


                } else {
                    api.hideProgress();
                    loadingFullScreen(false);
                    notOnLine(true,refreshmethod);
                    console.log('没有缓存:网络异常',"middle");
                }
            })
        }
    })
}


//ajax请求
function ajaxRequest(url, method, datas, callBack) {
    var accessToken = $api.getStorage("accessToken");
    if( accessToken == 'undefined'){
      accessToken = 'ad035964311b7f2b.1628500a86f.6afe393b';


    }
    console.log("当前--------accessToken:"+accessToken);
    var serverUrl = APPconfig.ApiDomain.ajaxDomain;//全局里面配置
    var now = Date.now();
    if(method=='get'){
      sendData={};
    }
    api.ajax({
        url: serverUrl + url,
        method: method,
        cache: false,
        timeout: 5,
        dataType: 'json',
        headers:{Authorization:accessToken},
        data: {values: datas}
    }, function(ret, err) {
        callBack(ret, err);
    });
}






//读文件
function readFile(path, callBack) {
    var cacheDir = api.cacheDir;
    api.readFile({
        path: cacheDir + path
    }, function(ret, err) {
        callBack(ret, err);
    });
}
//写文件
function writeFile(json, id, path) {
    //缓存目录
    var cacheDir = api.cacheDir;
    api.writeFile({
        //保存路径
        path: cacheDir + '/' + path + '/' + id + '.json',
        //保存数据,记得转换格式
        data: JSON.stringify(json)
    }, function(ret, err) {


    })
}


//缓存图片
function iCache(selector) {
    selector.each(function(data) {
        ! function(data) {
            var url = selector.eq(data).attr("src");
            var img = this;
            var pos = url.lastIndexOf("/");
            var filename = url.substring(pos + 1);
            var path = api.cacheDir + "/pic/" + filename;
            var obj = api.require('fs');
            obj.exist({
                path: path
            }, function(ret, err) {
                //msg(ret);
                if (ret.exist) {
                    if (ret.directory) {
                        //api.alert({msg:'该路径指向一个文件夹'});
                    } else {
                        //api.alert({msg:'该路径指向一个文件'});
                        //selector.eq(data).src=path;
                        selector.eq(data).attr('src', null);
                        path = api.cacheDir + "/pic/" + filename;
                        selector.eq(data).attr('src', path);
                        //console.log(selector.eq(data).attr("src"));
                    }
                } else {
                    api.download({
                        url: url,
                        savePath: path,
                        report: false,
                        cache: true,
                        allowResume: true
                    }, function(ret, err) {
                        //msg(ret);
                        if (ret) {
                            var value = ('文件大小:' + ret.fileSize + ';下载进度:' + ret.percent + ';下载状态' + ret.state + '存储路径: ' + ret.savePath);
                        } else {
                            var value = err.msg;
                        };
                    });
                }
            });
        }(data);
    });
};



.length)); for(var k in o) if(new RegExp("("+ k +")").test(fmt)) fmt = fmt.replace(RegExp.
 
 
//设置主题样式
function getskin(dir) {
    /*换皮肤*/
    var skindir = "../../css/skin/" + dir + "/skin1.css";
    //alert(skindir);
    var skin = new auiSkin({
        name: "night", //皮肤样式名字,不能为中文
        skinPath: skindir, //皮肤样式表路径
        default: true, //是否默认立即使用


    });
    //skin.setSkin();
}


//更换主题样式
//getskin('001');




//判断是否为空
function isEmpty(str){
  if(str==null||typeof str=="undefined"||str.trim()==""){
  return true;
  }else{
  return false;
  }
}




function returnNotNullStr(str){
  if(isEmpty(str)){
    return '';
  }else{
    return str;
  }
}
//获取封装api.toast
function mytoast(msg, str_area) {
    api.toast({
        msg: msg,
        duration: 1500,
        location: str_area
    });
}


//关闭当前窗口
/**返回**/
function goback() {
    api.closeWin({});
}


//打开新窗口 dirAndName   ../dir/winname
//checklogin: 1:需要登录才能打开  0:不需要登录就打开
function openNewWin(dirAndName, checklogin,params) {


    //判断是否有参数
    var pageParam = {};
    if(typeof(params) != 'undefined'){
      pageParam = params;
      console.log("openNewWin存在pageparams:"+JSON.stringify(params));
    }
    //判断是否有登陆
    if (checklogin) {
        if (!isLogin()) {
            api.toast({
                msg: '请先登录!',
                duration: 2000,
                location: 'middle'
            });
            api.openWin({
                name: 'user_win',
                url: "widget://html/user/user_win.html",
            });


            return false;
        }
    }


    //拆分得到winows name
    var arr = dirAndName.split('/');
    var name = arr[arr.length - 1];
    //alert(name + ':'+dirAndName+'_win.html');
    //alert(name);
    api.openWin({
        name: name + '_win',
        url: dirAndName + '_win.html',
        bounces: false,
        pageParam:pageParam
    });
}


//打开一个播放器
function showOneVideo(snsShareID,snsTopicID,snsUserID){
  api.openWin({
      name: 'videoshow_win',
      url: './videoshow_win.html',
      pageParam: {
          snsShareID: snsShareID,
          snsTopicID: snsTopicID,
          snsUserID : snsUserID
      }
    });
}
//时间戳转换成日期格式 2010-10-20
function getLocalTime(mytime) {


  var now=new Date(parseInt(mytime));
  var year=now.getFullYear();
  var month=now.getMonth()+1;
  var date=now.getDate();
  var hour=now.getHours();
  var minute=now.getMinutes();
  var second=now.getSeconds();
  if(minute<10){
      minute="0"+minute;
  }
  if(second<10){
      second="0"+second;
  }
  return year+"-"+month+"-"+date+" "+hour+":"+minute;
  return year+"-"+month+"-"+date;
}


//top.dateFtt("yyyy-MM-dd hh:mm:ss",crtTime);
function dateFtt(fmt,mytime)
{ //author: meizz
  var date = new Date(parseInt(mytime));
  var o = {
    "M+" : date.getMonth()+1,                 //月份
    "d+" : date.getDate(),                    //日
    "h+" : date.getHours(),                   //小时
    "m+" : date.getMinutes(),                 //分
    "s+" : date.getSeconds(),                 //秒
    "q+" : Math.floor((date.getMonth()+3)/3), //季度
    "S"  : date.getMilliseconds()             //毫秒
  };
  if(/(y+)/.test(fmt))
    fmt=fmt.replace(RegExp.$1, (date.getFullYear()+"").substr(4 - RegExp.$1.length));
  for(var k in o)
    if(new RegExp("("+ k +")").test(fmt))
  fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
  return fmt;
}




//判断
function isLogin() {
    var currendUID = $api.getStorage('snsUserID');
    if ( typeof(currendUID) != undefined && typeof(currendUID) != 'undefined' && currendUID != null) {
        console.log("--------------------------------已经登录----------------------");
        return true;
    } else {
        console.log("--------------------------------没有登录----------------------");
        return false;
    }
}


//验证手机号
function checkTel(tel) {


    if (!(/^1[34578]\d{9}$/.test(tel))) {
        return false;
    } else {
        return true;
    }
}


// 验证是否为正整数
/*function isIntNum(val){
    var regPos = / ^\d+$/; // 非负整数
    var regNeg = /^\-[1-9][0-9]*$/; // 负整数
    if(regPos.test(val) || regNeg.test(val)){
        return true;
    }else{
      console.log("不是数字");
        return false;
    }
}*/
//判断是否为正整数
function isPositiveInteger(s){//是否为正整数
     var re = /^[0-9]+$/ ;
     return re.test(s)
 }
//判断是否为数字  包含小数
function isNumber(num) {
  if (parseFloat(num).toString() == "NaN") {
    return false;
  } else {
    return true;
  }
}


//回到主界面
function backHomeWin() {
    //这个是回到主界面不会回到userwin
    api.closeToWin({
        name: 'root'
    });
}


//加载更多数据 显示 没有更多数据
function noMoreData() {
    //隐藏loading
    var hasMoreDom = $api.byId('hasmore');
    $api.addCls(hasMoreDom, 'aui-hide');
    //显示没有更多数据了
    var noMoreDom = $api.byId('nomore');
    $api.removeCls(noMoreDom, 'aui-hide');


}


//获取头像
function getUserHead(domid) {
    var imgsrc = $api.getStorage('snsUserHeadImage');
    //如果设置了头像
    if (imgsrc) {
        console.log("缓存的头像是" + imgsrc);
        var fs = api.require('fs');
        fs.exist({
            path: imgsrc
        }, function(ret, err) {
            if (ret.exist) {
                console.log("已经找到缓存头像:" + imgsrc);
                var imgDiv = $api.byId(domid);
                imgDiv.src = imgsrc;


            } else {
                //jieguo=false;
                console.log("缓存里面找不到头像图片");
            }
        });
    }


}


//缓存图片并返回  本地图片地址
function downloadSaveImage(imgurl, savePath) {
    var mypath;
    api.download({
        url: imgurl,
        savePath: savePath, //savePath: 'fs://head/head.png',
        report: true,
        cache: true,
        allowResume: true
    }, function(ret, err) {
        console.log("正在缓存图片imgurl结果是:" + JSON.stringify(ret));
        console.log("缓存图片错误:" + JSON.stringify(err));
        if (ret.state == 1) {
            mypath = ret.savePath;
        } else {
            mypath = false;
        }


    });


}




//没有默认图片地址 随机整数
function nub(minNum, maxNum) {
    switch (arguments.length) {
        case 1:
            return parseInt(Math.random() * minNum + 1);
            break;
        case 2:
            return parseInt(Math.random() * (maxNum - minNum + 1) + minNum);
            break;
        default:
            return 0;
            break;
    }
}






//缓存图片并存入$api.setStorage
function saveSnsHeadImg(imgurl, savepath) {
    api.download({
        url: imgurl,
        savePath: savepath, //savePath: 'fs://head/head.png',
        report: true,
        cache: true,
        allowResume: true
    }, function(ret, err) {


        console.log("正在缓存图片imgurl结果是:" + JSON.stringify(ret));
        if (ret.state == 1) {
            console.log("头像已经缓存 地址是:" + ret.savePath);
            $api.setStorage('snsUserHeadImage', ret.savePath);
            //发送消息 头像已经更改
            api.sendEvent({
                name: 'changmyhead',
                extra: {
                    headImgUrl: ret.savePath,
                }
            });


        } else {
            console.log("缓存图片错误:" + JSON.stringify(err));
        }


    });
}


//全屏加载中...
function loadingFullScreen(str) {
    var load = $api.byId('loadingFullScreen');
    //var html = '<div class="cf-font2" id="loadingFullScreen"><div class="loadBox clearfix"><div class="loadingBtn"><\/div><\/div><\/div>';
    var html = '<div class="cf-font2" id="loadingFullScreen"><div class="loadBox clearfix"><div class="rotate-loader"><\/div><\/div><\/div>';
    var htmlBox = document.documentElement;
    var bodyBox = document.body;
    if (load) {
        console.log("fullLoading存在");
    } else {
        console.log("fullLoading不存在");
        $api.append(document.body, html);
    }


    var load = $api.byId('loadingFullScreen');
    if (str) {
        load.style.display = 'block';
        load.addEventListener('touchmove', gundongEvent);
        //隐藏无网络框框
        notOnLine(false);


    } else {
        load.removeEventListener('click',gundongEvent,false);
        load.style.display = 'none';
    }


}


//无网络...
function notOnLine(str,callback) {
    var onlineBox = $api.byId('notOnLine');
    var path = "widget://res/nowifi-png.txt";
    var fs = api.require('fs');
    var urls = api.readFile({
        sync: true,
        path: path
    });
    var html = '<div class="cf-font2" id="notOnLine"><div class="notice clearfix" onclick="javascript:' + callback + '"><img src="'+urls+'" \/><div class="aui-font-size-14" style="color:#D1D2D4"  >网络异常、点击重新加载<\/div><\/div><\/div>';
    if (str) {
        console.log('callback' + callback);
        if (!onlineBox){
            $api.append(document.body, html);
        }
        var onlineBox = $api.byId('notOnLine');
        onlineBox.style.display = 'block';
        onlineBox.addEventListener('touchmove',gundongEvent);
        //隐藏loading框
        loadingFullScreen(false);
    } else {
        if(onlineBox){
          onlineBox.style.display = 'none';
        }


    }
}




var gundongEvent = function(event) {
    event.preventDefault();
}




//--------------------------------------------------------------------缓存相关-----------------------------------------------------------


//更换主题样式
//getskin('001');


//获取数据 并缓存 不使用全屏loading
function ajaxCacheData(folder, id, url,method,datas,callback) {
    readFile('/' + folder + '/' + id + '.json', function(ret, err) {
        if (ret.status) {
            //如果成功,说明有本地存储,读取时转换下数据格式
            //拼装json代码
            var cacheData = ret.data;
            console.log('/' + folder + '/' + id + '.json'+" 从缓存文件读取数据为:"+cacheData);
            callback(JSON.parse(cacheData));
            //iCache($('.cache'));
            //再远程取一下数据,防止有更新
            ajaxRequest(url, method, datas, function(ret, err) {
                console.log("对比更新 ret:"+JSON.stringify(ret)+"err"+JSON.stringify(err));
                if (ret) {
                    if(ret.code==200){
                        if (cacheData != JSON.stringify(ret)) {
                          console.log("----------有更新 处理返回数据");
                            //有更新处理返回数据
                            callback(ret);
                            //缓存数据
                            writeFile(ret, id, folder);
                            //iCache($('.cache'));
                        }else{
                          console.log("----------未更新内容 只读缓存内容");
                        }
                    }else{
                      //有缓存对比更新:加载失败
                      mytoast('加载失败',"middle");
                    }


                } else {
                    //有缓存对比更新:网络异常
                    mytoast('网络异常',"middle");
                }
            })
        } else {
            //如果失败则从服务器读取,利用上面的那个ajaxRequest方法从服务器GET数据
            ajaxRequest(url, method, datas, function(ret, err) {
              console.log("###########################无缓存重新请求ret:#######################"+JSON.stringify(ret)+"err"+JSON.stringify(err));
                if (ret) {
                    if(ret.code==200){
                      //处理返回数据
                      callback(ret);
                      //缓存数据
                      writeFile(ret, id, folder);
                      //iCache($('.cache'));
                    }else{
                      api.hideProgress();
                      mytoast('没有缓存:加载失败',"middle");
                    }


                } else {
                    api.hideProgress();
                    mytoast('没有缓存:网络异常',"middle");
                }
            })
        }
    })
}




//获取数据 并缓存 使用全屏loading
function ajaxCacheData2(folder, id, url,method,datas,refreshmethod,callback) {
    readFile('/' + folder + '/' + id + '.json', function(ret, err) {
        if (ret.status) {
            //如果成功,说明有本地存储,读取时转换下数据格式
            //拼装json代码
            //alert('取到缓存')
            var cacheData = ret.data;
            console.log('/' + folder + '/' + id + '.json'+" 从缓存文件读取数据为:"+cacheData);
            callback(JSON.parse(cacheData));
            loadingFullScreen(false);
            notOnLine(false);
            //iCache($('.cache'));
            //再远程取一下数据,防止有更新
            ajaxRequest(url, method, datas, function(ret, err) {
                console.log("对比更新 ret:"+JSON.stringify(ret)+"err"+JSON.stringify(err));
                if (ret) {
                    if(ret.code==200){
                        if (cacheData != JSON.stringify(ret)) {
                          console.log("----------有更新 处理返回数据");
                            //有更新处理返回数据
                            //alert('更新缓存')
                            callback(ret);
                            //缓存数据
                            writeFile(ret, id, folder);
                            //iCache($('.cache'));
                        }else{
                          console.log("----------未更新内容 只读缓存内容");
                        }
                    }else{
                          console.log("----------有更新 加载失败");
                    }


                } else {
                    mytoast('有缓存对比更新:网络异常',"middle");
                }
            })
        } else {
            //如果失败则从服务器读取,利用上面的那个ajaxRequest方法从服务器GET数据
            ajaxRequest(url, method, datas, function(ret, err) {
              console.log(JSON.stringify(datas));
              console.log("###########################无缓存重新请求ret:#######################"+url+JSON.stringify(ret)+"err"+JSON.stringify(err));
                if (ret) {
                    if(ret.code==200){
                      //处理返回数据
                      //alert('没取到缓存')
                      callback(ret);
                      api.hideProgress();
                      loadingFullScreen(false);
                      notOnLine(false);
                      //缓存数据
                      writeFile(ret, id, folder);
                      //iCache($('.cache'));
                    }else{
                      api.hideProgress();
                      loadingFullScreen(false);
                      notOnLine(true,refreshmethod);
                      console.log('没有缓存:加载失败',"middle");
                    }


                } else {
                    api.hideProgress();
                    loadingFullScreen(false);
                    notOnLine(true,refreshmethod);
                    console.log('没有缓存:网络异常',"middle");
                }
            })
        }
    })
}


//ajax请求
function ajaxRequest(url, method, datas, callBack) {
    var accessToken = $api.getStorage("accessToken");
    if( accessToken == 'undefined'){
      accessToken = 'ad035964311b7f2b.1628500a86f.6afe393b';


    }
    console.log("当前--------accessToken:"+accessToken);
    var serverUrl = APPconfig.ApiDomain.ajaxDomain;//全局里面配置
    var now = Date.now();
    if(method=='get'){
      sendData={};
    }
    api.ajax({
        url: serverUrl + url,
        method: method,
        cache: false,
        timeout: 5,
        dataType: 'json',
        headers:{Authorization:accessToken},
        data: {values: datas}
    }, function(ret, err) {
        callBack(ret, err);
    });
}






//读文件
function readFile(path, callBack) {
    var cacheDir = api.cacheDir;
    api.readFile({
        path: cacheDir + path
    }, function(ret, err) {
        callBack(ret, err);
    });
}
//写文件
function writeFile(json, id, path) {
    //缓存目录
    var cacheDir = api.cacheDir;
    api.writeFile({
        //保存路径
        path: cacheDir + '/' + path + '/' + id + '.json',
        //保存数据,记得转换格式
        data: JSON.stringify(json)
    }, function(ret, err) {


    })
}


//缓存图片
function iCache(selector) {
    selector.each(function(data) {
        ! function(data) {
            var url = selector.eq(data).attr("src");
            var img = this;
            var pos = url.lastIndexOf("/");
            var filename = url.substring(pos + 1);
            var path = api.cacheDir + "/pic/" + filename;
            var obj = api.require('fs');
            obj.exist({
                path: path
            }, function(ret, err) {
                //msg(ret);
                if (ret.exist) {
                    if (ret.directory) {
                        //api.alert({msg:'该路径指向一个文件夹'});
                    } else {
                        //api.alert({msg:'该路径指向一个文件'});
                        //selector.eq(data).src=path;
                        selector.eq(data).attr('src', null);
                        path = api.cacheDir + "/pic/" + filename;
                        selector.eq(data).attr('src', path);
                        //console.log(selector.eq(data).attr("src"));
                    }
                } else {
                    api.download({
                        url: url,
                        savePath: path,
                        report: false,
                        cache: true,
                        allowResume: true
                    }, function(ret, err) {
                        //msg(ret);
                        if (ret) {
                            var value = ('文件大小:' + ret.fileSize + ';下载进度:' + ret.percent + ';下载状态' + ret.state + '存储路径: ' + ret.savePath);
                        } else {
                            var value = err.msg;
                        };
                    });
                }
            });
        }(data);
    });
};



, (RegExp.
 
 
//设置主题样式
function getskin(dir) {
    /*换皮肤*/
    var skindir = "../../css/skin/" + dir + "/skin1.css";
    //alert(skindir);
    var skin = new auiSkin({
        name: "night", //皮肤样式名字,不能为中文
        skinPath: skindir, //皮肤样式表路径
        default: true, //是否默认立即使用


    });
    //skin.setSkin();
}


//更换主题样式
//getskin('001');




//判断是否为空
function isEmpty(str){
  if(str==null||typeof str=="undefined"||str.trim()==""){
  return true;
  }else{
  return false;
  }
}




function returnNotNullStr(str){
  if(isEmpty(str)){
    return '';
  }else{
    return str;
  }
}
//获取封装api.toast
function mytoast(msg, str_area) {
    api.toast({
        msg: msg,
        duration: 1500,
        location: str_area
    });
}


//关闭当前窗口
/**返回**/
function goback() {
    api.closeWin({});
}


//打开新窗口 dirAndName   ../dir/winname
//checklogin: 1:需要登录才能打开  0:不需要登录就打开
function openNewWin(dirAndName, checklogin,params) {


    //判断是否有参数
    var pageParam = {};
    if(typeof(params) != 'undefined'){
      pageParam = params;
      console.log("openNewWin存在pageparams:"+JSON.stringify(params));
    }
    //判断是否有登陆
    if (checklogin) {
        if (!isLogin()) {
            api.toast({
                msg: '请先登录!',
                duration: 2000,
                location: 'middle'
            });
            api.openWin({
                name: 'user_win',
                url: "widget://html/user/user_win.html",
            });


            return false;
        }
    }


    //拆分得到winows name
    var arr = dirAndName.split('/');
    var name = arr[arr.length - 1];
    //alert(name + ':'+dirAndName+'_win.html');
    //alert(name);
    api.openWin({
        name: name + '_win',
        url: dirAndName + '_win.html',
        bounces: false,
        pageParam:pageParam
    });
}


//打开一个播放器
function showOneVideo(snsShareID,snsTopicID,snsUserID){
  api.openWin({
      name: 'videoshow_win',
      url: './videoshow_win.html',
      pageParam: {
          snsShareID: snsShareID,
          snsTopicID: snsTopicID,
          snsUserID : snsUserID
      }
    });
}
//时间戳转换成日期格式 2010-10-20
function getLocalTime(mytime) {


  var now=new Date(parseInt(mytime));
  var year=now.getFullYear();
  var month=now.getMonth()+1;
  var date=now.getDate();
  var hour=now.getHours();
  var minute=now.getMinutes();
  var second=now.getSeconds();
  if(minute<10){
      minute="0"+minute;
  }
  if(second<10){
      second="0"+second;
  }
  return year+"-"+month+"-"+date+" "+hour+":"+minute;
  return year+"-"+month+"-"+date;
}


//top.dateFtt("yyyy-MM-dd hh:mm:ss",crtTime);
function dateFtt(fmt,mytime)
{ //author: meizz
  var date = new Date(parseInt(mytime));
  var o = {
    "M+" : date.getMonth()+1,                 //月份
    "d+" : date.getDate(),                    //日
    "h+" : date.getHours(),                   //小时
    "m+" : date.getMinutes(),                 //分
    "s+" : date.getSeconds(),                 //秒
    "q+" : Math.floor((date.getMonth()+3)/3), //季度
    "S"  : date.getMilliseconds()             //毫秒
  };
  if(/(y+)/.test(fmt))
    fmt=fmt.replace(RegExp.$1, (date.getFullYear()+"").substr(4 - RegExp.$1.length));
  for(var k in o)
    if(new RegExp("("+ k +")").test(fmt))
  fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
  return fmt;
}




//判断
function isLogin() {
    var currendUID = $api.getStorage('snsUserID');
    if ( typeof(currendUID) != undefined && typeof(currendUID) != 'undefined' && currendUID != null) {
        console.log("--------------------------------已经登录----------------------");
        return true;
    } else {
        console.log("--------------------------------没有登录----------------------");
        return false;
    }
}


//验证手机号
function checkTel(tel) {


    if (!(/^1[34578]\d{9}$/.test(tel))) {
        return false;
    } else {
        return true;
    }
}


// 验证是否为正整数
/*function isIntNum(val){
    var regPos = / ^\d+$/; // 非负整数
    var regNeg = /^\-[1-9][0-9]*$/; // 负整数
    if(regPos.test(val) || regNeg.test(val)){
        return true;
    }else{
      console.log("不是数字");
        return false;
    }
}*/
//判断是否为正整数
function isPositiveInteger(s){//是否为正整数
     var re = /^[0-9]+$/ ;
     return re.test(s)
 }
//判断是否为数字  包含小数
function isNumber(num) {
  if (parseFloat(num).toString() == "NaN") {
    return false;
  } else {
    return true;
  }
}


//回到主界面
function backHomeWin() {
    //这个是回到主界面不会回到userwin
    api.closeToWin({
        name: 'root'
    });
}


//加载更多数据 显示 没有更多数据
function noMoreData() {
    //隐藏loading
    var hasMoreDom = $api.byId('hasmore');
    $api.addCls(hasMoreDom, 'aui-hide');
    //显示没有更多数据了
    var noMoreDom = $api.byId('nomore');
    $api.removeCls(noMoreDom, 'aui-hide');


}


//获取头像
function getUserHead(domid) {
    var imgsrc = $api.getStorage('snsUserHeadImage');
    //如果设置了头像
    if (imgsrc) {
        console.log("缓存的头像是" + imgsrc);
        var fs = api.require('fs');
        fs.exist({
            path: imgsrc
        }, function(ret, err) {
            if (ret.exist) {
                console.log("已经找到缓存头像:" + imgsrc);
                var imgDiv = $api.byId(domid);
                imgDiv.src = imgsrc;


            } else {
                //jieguo=false;
                console.log("缓存里面找不到头像图片");
            }
        });
    }


}


//缓存图片并返回  本地图片地址
function downloadSaveImage(imgurl, savePath) {
    var mypath;
    api.download({
        url: imgurl,
        savePath: savePath, //savePath: 'fs://head/head.png',
        report: true,
        cache: true,
        allowResume: true
    }, function(ret, err) {
        console.log("正在缓存图片imgurl结果是:" + JSON.stringify(ret));
        console.log("缓存图片错误:" + JSON.stringify(err));
        if (ret.state == 1) {
            mypath = ret.savePath;
        } else {
            mypath = false;
        }


    });


}




//没有默认图片地址 随机整数
function nub(minNum, maxNum) {
    switch (arguments.length) {
        case 1:
            return parseInt(Math.random() * minNum + 1);
            break;
        case 2:
            return parseInt(Math.random() * (maxNum - minNum + 1) + minNum);
            break;
        default:
            return 0;
            break;
    }
}






//缓存图片并存入$api.setStorage
function saveSnsHeadImg(imgurl, savepath) {
    api.download({
        url: imgurl,
        savePath: savepath, //savePath: 'fs://head/head.png',
        report: true,
        cache: true,
        allowResume: true
    }, function(ret, err) {


        console.log("正在缓存图片imgurl结果是:" + JSON.stringify(ret));
        if (ret.state == 1) {
            console.log("头像已经缓存 地址是:" + ret.savePath);
            $api.setStorage('snsUserHeadImage', ret.savePath);
            //发送消息 头像已经更改
            api.sendEvent({
                name: 'changmyhead',
                extra: {
                    headImgUrl: ret.savePath,
                }
            });


        } else {
            console.log("缓存图片错误:" + JSON.stringify(err));
        }


    });
}


//全屏加载中...
function loadingFullScreen(str) {
    var load = $api.byId('loadingFullScreen');
    //var html = '<div class="cf-font2" id="loadingFullScreen"><div class="loadBox clearfix"><div class="loadingBtn"><\/div><\/div><\/div>';
    var html = '<div class="cf-font2" id="loadingFullScreen"><div class="loadBox clearfix"><div class="rotate-loader"><\/div><\/div><\/div>';
    var htmlBox = document.documentElement;
    var bodyBox = document.body;
    if (load) {
        console.log("fullLoading存在");
    } else {
        console.log("fullLoading不存在");
        $api.append(document.body, html);
    }


    var load = $api.byId('loadingFullScreen');
    if (str) {
        load.style.display = 'block';
        load.addEventListener('touchmove', gundongEvent);
        //隐藏无网络框框
        notOnLine(false);


    } else {
        load.removeEventListener('click',gundongEvent,false);
        load.style.display = 'none';
    }


}


//无网络...
function notOnLine(str,callback) {
    var onlineBox = $api.byId('notOnLine');
    var path = "widget://res/nowifi-png.txt";
    var fs = api.require('fs');
    var urls = api.readFile({
        sync: true,
        path: path
    });
    var html = '<div class="cf-font2" id="notOnLine"><div class="notice clearfix" onclick="javascript:' + callback + '"><img src="'+urls+'" \/><div class="aui-font-size-14" style="color:#D1D2D4"  >网络异常、点击重新加载<\/div><\/div><\/div>';
    if (str) {
        console.log('callback' + callback);
        if (!onlineBox){
            $api.append(document.body, html);
        }
        var onlineBox = $api.byId('notOnLine');
        onlineBox.style.display = 'block';
        onlineBox.addEventListener('touchmove',gundongEvent);
        //隐藏loading框
        loadingFullScreen(false);
    } else {
        if(onlineBox){
          onlineBox.style.display = 'none';
        }


    }
}




var gundongEvent = function(event) {
    event.preventDefault();
}




//--------------------------------------------------------------------缓存相关-----------------------------------------------------------


//更换主题样式
//getskin('001');


//获取数据 并缓存 不使用全屏loading
function ajaxCacheData(folder, id, url,method,datas,callback) {
    readFile('/' + folder + '/' + id + '.json', function(ret, err) {
        if (ret.status) {
            //如果成功,说明有本地存储,读取时转换下数据格式
            //拼装json代码
            var cacheData = ret.data;
            console.log('/' + folder + '/' + id + '.json'+" 从缓存文件读取数据为:"+cacheData);
            callback(JSON.parse(cacheData));
            //iCache($('.cache'));
            //再远程取一下数据,防止有更新
            ajaxRequest(url, method, datas, function(ret, err) {
                console.log("对比更新 ret:"+JSON.stringify(ret)+"err"+JSON.stringify(err));
                if (ret) {
                    if(ret.code==200){
                        if (cacheData != JSON.stringify(ret)) {
                          console.log("----------有更新 处理返回数据");
                            //有更新处理返回数据
                            callback(ret);
                            //缓存数据
                            writeFile(ret, id, folder);
                            //iCache($('.cache'));
                        }else{
                          console.log("----------未更新内容 只读缓存内容");
                        }
                    }else{
                      //有缓存对比更新:加载失败
                      mytoast('加载失败',"middle");
                    }


                } else {
                    //有缓存对比更新:网络异常
                    mytoast('网络异常',"middle");
                }
            })
        } else {
            //如果失败则从服务器读取,利用上面的那个ajaxRequest方法从服务器GET数据
            ajaxRequest(url, method, datas, function(ret, err) {
              console.log("###########################无缓存重新请求ret:#######################"+JSON.stringify(ret)+"err"+JSON.stringify(err));
                if (ret) {
                    if(ret.code==200){
                      //处理返回数据
                      callback(ret);
                      //缓存数据
                      writeFile(ret, id, folder);
                      //iCache($('.cache'));
                    }else{
                      api.hideProgress();
                      mytoast('没有缓存:加载失败',"middle");
                    }


                } else {
                    api.hideProgress();
                    mytoast('没有缓存:网络异常',"middle");
                }
            })
        }
    })
}




//获取数据 并缓存 使用全屏loading
function ajaxCacheData2(folder, id, url,method,datas,refreshmethod,callback) {
    readFile('/' + folder + '/' + id + '.json', function(ret, err) {
        if (ret.status) {
            //如果成功,说明有本地存储,读取时转换下数据格式
            //拼装json代码
            //alert('取到缓存')
            var cacheData = ret.data;
            console.log('/' + folder + '/' + id + '.json'+" 从缓存文件读取数据为:"+cacheData);
            callback(JSON.parse(cacheData));
            loadingFullScreen(false);
            notOnLine(false);
            //iCache($('.cache'));
            //再远程取一下数据,防止有更新
            ajaxRequest(url, method, datas, function(ret, err) {
                console.log("对比更新 ret:"+JSON.stringify(ret)+"err"+JSON.stringify(err));
                if (ret) {
                    if(ret.code==200){
                        if (cacheData != JSON.stringify(ret)) {
                          console.log("----------有更新 处理返回数据");
                            //有更新处理返回数据
                            //alert('更新缓存')
                            callback(ret);
                            //缓存数据
                            writeFile(ret, id, folder);
                            //iCache($('.cache'));
                        }else{
                          console.log("----------未更新内容 只读缓存内容");
                        }
                    }else{
                          console.log("----------有更新 加载失败");
                    }


                } else {
                    mytoast('有缓存对比更新:网络异常',"middle");
                }
            })
        } else {
            //如果失败则从服务器读取,利用上面的那个ajaxRequest方法从服务器GET数据
            ajaxRequest(url, method, datas, function(ret, err) {
              console.log(JSON.stringify(datas));
              console.log("###########################无缓存重新请求ret:#######################"+url+JSON.stringify(ret)+"err"+JSON.stringify(err));
                if (ret) {
                    if(ret.code==200){
                      //处理返回数据
                      //alert('没取到缓存')
                      callback(ret);
                      api.hideProgress();
                      loadingFullScreen(false);
                      notOnLine(false);
                      //缓存数据
                      writeFile(ret, id, folder);
                      //iCache($('.cache'));
                    }else{
                      api.hideProgress();
                      loadingFullScreen(false);
                      notOnLine(true,refreshmethod);
                      console.log('没有缓存:加载失败',"middle");
                    }


                } else {
                    api.hideProgress();
                    loadingFullScreen(false);
                    notOnLine(true,refreshmethod);
                    console.log('没有缓存:网络异常',"middle");
                }
            })
        }
    })
}


//ajax请求
function ajaxRequest(url, method, datas, callBack) {
    var accessToken = $api.getStorage("accessToken");
    if( accessToken == 'undefined'){
      accessToken = 'ad035964311b7f2b.1628500a86f.6afe393b';


    }
    console.log("当前--------accessToken:"+accessToken);
    var serverUrl = APPconfig.ApiDomain.ajaxDomain;//全局里面配置
    var now = Date.now();
    if(method=='get'){
      sendData={};
    }
    api.ajax({
        url: serverUrl + url,
        method: method,
        cache: false,
        timeout: 5,
        dataType: 'json',
        headers:{Authorization:accessToken},
        data: {values: datas}
    }, function(ret, err) {
        callBack(ret, err);
    });
}






//读文件
function readFile(path, callBack) {
    var cacheDir = api.cacheDir;
    api.readFile({
        path: cacheDir + path
    }, function(ret, err) {
        callBack(ret, err);
    });
}
//写文件
function writeFile(json, id, path) {
    //缓存目录
    var cacheDir = api.cacheDir;
    api.writeFile({
        //保存路径
        path: cacheDir + '/' + path + '/' + id + '.json',
        //保存数据,记得转换格式
        data: JSON.stringify(json)
    }, function(ret, err) {


    })
}


//缓存图片
function iCache(selector) {
    selector.each(function(data) {
        ! function(data) {
            var url = selector.eq(data).attr("src");
            var img = this;
            var pos = url.lastIndexOf("/");
            var filename = url.substring(pos + 1);
            var path = api.cacheDir + "/pic/" + filename;
            var obj = api.require('fs');
            obj.exist({
                path: path
            }, function(ret, err) {
                //msg(ret);
                if (ret.exist) {
                    if (ret.directory) {
                        //api.alert({msg:'该路径指向一个文件夹'});
                    } else {
                        //api.alert({msg:'该路径指向一个文件'});
                        //selector.eq(data).src=path;
                        selector.eq(data).attr('src', null);
                        path = api.cacheDir + "/pic/" + filename;
                        selector.eq(data).attr('src', path);
                        //console.log(selector.eq(data).attr("src"));
                    }
                } else {
                    api.download({
                        url: url,
                        savePath: path,
                        report: false,
                        cache: true,
                        allowResume: true
                    }, function(ret, err) {
                        //msg(ret);
                        if (ret) {
                            var value = ('文件大小:' + ret.fileSize + ';下载进度:' + ret.percent + ';下载状态' + ret.state + '存储路径: ' + ret.savePath);
                        } else {
                            var value = err.msg;
                        };
                    });
                }
            });
        }(data);
    });
};



.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length))); return fmt; } //判断 function isLogin() { var currendUID = $api.getStorage('snsUserID'); if ( typeof(currendUID) != undefined && typeof(currendUID) != 'undefined' && currendUID != null) { console.log("--------------------------------已经登录----------------------"); return true; } else { console.log("--------------------------------没有登录----------------------"); return false; } } //验证手机号 function checkTel(tel) { if (!(/^1[34578]\d{9}$/.test(tel))) { return false; } else { return true; } } // 验证是否为正整数 /*function isIntNum(val){ var regPos = / ^\d+$/; // 非负整数 var regNeg = /^\-[1-9][0-9]*$/; // 负整数 if(regPos.test(val) || regNeg.test(val)){ return true; }else{ console.log("不是数字"); return false; } }*/ //判断是否为正整数 function isPositiveInteger(s){//是否为正整数 var re = /^[0-9]+$/ ; return re.test(s) } //判断是否为数字 包含小数 function isNumber(num) {   if (parseFloat(num).toString() == "NaN") {     return false;   } else {     return true;   } } //回到主界面 function backHomeWin() { //这个是回到主界面不会回到userwin api.closeToWin({ name: 'root' }); } //加载更多数据 显示 没有更多数据 function noMoreData() { //隐藏loading var hasMoreDom = $api.byId('hasmore'); $api.addCls(hasMoreDom, 'aui-hide'); //显示没有更多数据了 var noMoreDom = $api.byId('nomore'); $api.removeCls(noMoreDom, 'aui-hide'); } //获取头像 function getUserHead(domid) { var imgsrc = $api.getStorage('snsUserHeadImage'); //如果设置了头像 if (imgsrc) { console.log("缓存的头像是" + imgsrc); var fs = api.require('fs'); fs.exist({ path: imgsrc }, function(ret, err) { if (ret.exist) { console.log("已经找到缓存头像:" + imgsrc); var imgDiv = $api.byId(domid); imgDiv.src = imgsrc; } else { //jieguo=false; console.log("缓存里面找不到头像图片"); } }); } } //缓存图片并返回 本地图片地址 function downloadSaveImage(imgurl, savePath) { var mypath; api.download({ url: imgurl, savePath: savePath, //savePath: 'fs://head/head.png', report: true, cache: true, allowResume: true }, function(ret, err) { console.log("正在缓存图片imgurl结果是:" + JSON.stringify(ret)); console.log("缓存图片错误:" + JSON.stringify(err)); if (ret.state == 1) { mypath = ret.savePath; } else { mypath = false; } }); } //没有默认图片地址 随机整数 function nub(minNum, maxNum) { switch (arguments.length) { case 1: return parseInt(Math.random() * minNum + 1); break; case 2: return parseInt(Math.random() * (maxNum - minNum + 1) + minNum); break; default: return 0; break; } } //缓存图片并存入$api.setStorage function saveSnsHeadImg(imgurl, savepath) { api.download({ url: imgurl, savePath: savepath, //savePath: 'fs://head/head.png', report: true, cache: true, allowResume: true }, function(ret, err) { console.log("正在缓存图片imgurl结果是:" + JSON.stringify(ret)); if (ret.state == 1) { console.log("头像已经缓存 地址是:" + ret.savePath); $api.setStorage('snsUserHeadImage', ret.savePath); //发送消息 头像已经更改 api.sendEvent({ name: 'changmyhead', extra: { headImgUrl: ret.savePath, } }); } else { console.log("缓存图片错误:" + JSON.stringify(err)); } }); } //全屏加载中... function loadingFullScreen(str) { var load = $api.byId('loadingFullScreen'); //var html = '<div class="cf-font2" id="loadingFullScreen"><div class="loadBox clearfix"><div class="loadingBtn"><\/div><\/div><\/div>'; var html = '<div class="cf-font2" id="loadingFullScreen"><div class="loadBox clearfix"><div class="rotate-loader"><\/div><\/div><\/div>'; var htmlBox = document.documentElement; var bodyBox = document.body; if (load) { console.log("fullLoading存在"); } else { console.log("fullLoading不存在"); $api.append(document.body, html); } var load = $api.byId('loadingFullScreen'); if (str) { load.style.display = 'block'; load.addEventListener('touchmove', gundongEvent); //隐藏无网络框框 notOnLine(false); } else { load.removeEventListener('click',gundongEvent,false); load.style.display = 'none'; } } //无网络... function notOnLine(str,callback) { var onlineBox = $api.byId('notOnLine'); var path = "widget://res/nowifi-png.txt"; var fs = api.require('fs'); var urls = api.readFile({ sync: true, path: path }); var html = '<div class="cf-font2" id="notOnLine"><div class="notice clearfix" onclick="javascript:' + callback + '"><img src="'+urls+'" \/><div class="aui-font-size-14" style="color:#D1D2D4" >网络异常、点击重新加载<\/div><\/div><\/div>'; if (str) { console.log('callback' + callback); if (!onlineBox){ $api.append(document.body, html); } var onlineBox = $api.byId('notOnLine'); onlineBox.style.display = 'block'; onlineBox.addEventListener('touchmove',gundongEvent); //隐藏loading框 loadingFullScreen(false); } else { if(onlineBox){ onlineBox.style.display = 'none'; } } } var gundongEvent = function(event) { event.preventDefault(); } //--------------------------------------------------------------------缓存相关----------------------------------------------------------- //更换主题样式 //getskin('001'); //获取数据 并缓存 不使用全屏loading function ajaxCacheData(folder, id, url,method,datas,callback) { readFile('/' + folder + '/' + id + '.json', function(ret, err) { if (ret.status) { //如果成功,说明有本地存储,读取时转换下数据格式 //拼装json代码 var cacheData = ret.data; console.log('/' + folder + '/' + id + '.json'+" 从缓存文件读取数据为:"+cacheData); callback(JSON.parse(cacheData)); //iCache($('.cache')); //再远程取一下数据,防止有更新 ajaxRequest(url, method, datas, function(ret, err) { console.log("对比更新 ret:"+JSON.stringify(ret)+"err"+JSON.stringify(err)); if (ret) { if(ret.code==200){ if (cacheData != JSON.stringify(ret)) { console.log("----------有更新 处理返回数据"); //有更新处理返回数据 callback(ret); //缓存数据 writeFile(ret, id, folder); //iCache($('.cache')); }else{ console.log("----------未更新内容 只读缓存内容"); } }else{ //有缓存对比更新:加载失败 mytoast('加载失败',"middle"); } } else { //有缓存对比更新:网络异常 mytoast('网络异常',"middle"); } }) } else { //如果失败则从服务器读取,利用上面的那个ajaxRequest方法从服务器GET数据 ajaxRequest(url, method, datas, function(ret, err) { console.log("###########################无缓存重新请求ret:#######################"+JSON.stringify(ret)+"err"+JSON.stringify(err)); if (ret) { if(ret.code==200){ //处理返回数据 callback(ret); //缓存数据 writeFile(ret, id, folder); //iCache($('.cache')); }else{ api.hideProgress(); mytoast('没有缓存:加载失败',"middle"); } } else { api.hideProgress(); mytoast('没有缓存:网络异常',"middle"); } }) } }) } //获取数据 并缓存 使用全屏loading function ajaxCacheData2(folder, id, url,method,datas,refreshmethod,callback) { readFile('/' + folder + '/' + id + '.json', function(ret, err) { if (ret.status) { //如果成功,说明有本地存储,读取时转换下数据格式 //拼装json代码 //alert('取到缓存') var cacheData = ret.data; console.log('/' + folder + '/' + id + '.json'+" 从缓存文件读取数据为:"+cacheData); callback(JSON.parse(cacheData)); loadingFullScreen(false); notOnLine(false); //iCache($('.cache')); //再远程取一下数据,防止有更新 ajaxRequest(url, method, datas, function(ret, err) { console.log("对比更新 ret:"+JSON.stringify(ret)+"err"+JSON.stringify(err)); if (ret) { if(ret.code==200){ if (cacheData != JSON.stringify(ret)) { console.log("----------有更新 处理返回数据"); //有更新处理返回数据 //alert('更新缓存') callback(ret); //缓存数据 writeFile(ret, id, folder); //iCache($('.cache')); }else{ console.log("----------未更新内容 只读缓存内容"); } }else{ console.log("----------有更新 加载失败"); } } else { mytoast('有缓存对比更新:网络异常',"middle"); } }) } else { //如果失败则从服务器读取,利用上面的那个ajaxRequest方法从服务器GET数据 ajaxRequest(url, method, datas, function(ret, err) { console.log(JSON.stringify(datas)); console.log("###########################无缓存重新请求ret:#######################"+url+JSON.stringify(ret)+"err"+JSON.stringify(err)); if (ret) { if(ret.code==200){ //处理返回数据 //alert('没取到缓存') callback(ret); api.hideProgress(); loadingFullScreen(false); notOnLine(false); //缓存数据 writeFile(ret, id, folder); //iCache($('.cache')); }else{ api.hideProgress(); loadingFullScreen(false); notOnLine(true,refreshmethod); console.log('没有缓存:加载失败',"middle"); } } else { api.hideProgress(); loadingFullScreen(false); notOnLine(true,refreshmethod); console.log('没有缓存:网络异常',"middle"); } }) } }) } //ajax请求 function ajaxRequest(url, method, datas, callBack) { var accessToken = $api.getStorage("accessToken"); if( accessToken == 'undefined'){ accessToken = 'ad035964311b7f2b.1628500a86f.6afe393b'; } console.log("当前--------accessToken:"+accessToken); var serverUrl = APPconfig.ApiDomain.ajaxDomain;//全局里面配置 var now = Date.now(); if(method=='get'){ sendData={}; } api.ajax({ url: serverUrl + url, method: method, cache: false, timeout: 5, dataType: 'json', headers:{Authorization:accessToken}, data: {values: datas} }, function(ret, err) { callBack(ret, err); }); } //读文件 function readFile(path, callBack) { var cacheDir = api.cacheDir; api.readFile({ path: cacheDir + path }, function(ret, err) { callBack(ret, err); }); } //写文件 function writeFile(json, id, path) { //缓存目录 var cacheDir = api.cacheDir; api.writeFile({ //保存路径 path: cacheDir + '/' + path + '/' + id + '.json', //保存数据,记得转换格式 data: JSON.stringify(json) }, function(ret, err) { }) } //缓存图片 function iCache(selector) { selector.each(function(data) { ! function(data) { var url = selector.eq(data).attr("src"); var img = this; var pos = url.lastIndexOf("/"); var filename = url.substring(pos + 1); var path = api.cacheDir + "/pic/" + filename; var obj = api.require('fs'); obj.exist({ path: path }, function(ret, err) { //msg(ret); if (ret.exist) { if (ret.directory) { //api.alert({msg:'该路径指向一个文件夹'}); } else { //api.alert({msg:'该路径指向一个文件'}); //selector.eq(data).src=path; selector.eq(data).attr('src', null); path = api.cacheDir + "/pic/" + filename; selector.eq(data).attr('src', path); //console.log(selector.eq(data).attr("src")); } } else { api.download({ url: url, savePath: path, report: false, cache: true, allowResume: true }, function(ret, err) { //msg(ret); if (ret) { var value = ('文件大小:' + ret.fileSize + ';下载进度:' + ret.percent + ';下载状态' + ret.state + '存储路径: ' + ret.savePath); } else { var value = err.msg; }; }); } }); }(data); }); };//设置主题样式 function getskin(dir) { /*换皮肤*/



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: