//设置主题样式 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); }); };