/** * 创建人: jkxydp * 创建时间: 2015-09-10 18:01 * 用途: */ (function (win, undefined) { "use strict"; var _TIFA_PAGE_DATA_KEY = "_TIFA_PAGE_DATA", DATA_KEY = location.href + "_TIFA_PAGE_DATA_KEY", HISTORY_KEY = "_TIFA_PAGE_HISTORIES"; win._PluginPage = { /** * 打开新页面 * @param {String} url * @param {*} [data] * @returns {Boolean} */ open: function (url, data, isLogin) { if(!!data) { if(typeof data !== 'string') { data = JSON.stringify(data); } localStorage.setItem(getAbsoluteUrl(url) + "_TIFA_PAGE_DATA_KEY",data); } if(isLogin){ _PluginPage.checkToken(getAbsoluteUrl(url)); }else{ window.open(url); } }, //检测token checkToken:function(url) { $.ajax({ type: 'POST', data:{bankcode:getApplication('bankcode'),channel:getApplication('channel')}, url: getService("checkToken"), dataType: "json", success: function (data) { if (data.retcode == getApplication('LOGIN_TIME_OUT')|| data.retcode == getApplication('NOT_LOGIN')) { _Storage.removeItem(UXUN.local_member);//清理缓存 _Storage.setItem("UXUN_LAST_LOGIN_URL",{url:getAbsoluteUrl(url)}); UXUN.loginOut(); }else{ location.href = url; } }, error: function (msg) { location.href = url; } }); }, /** * 获取页面数据 * @returns {*} */ getData: function (oneTime) { var data = localStorage.getItem(DATA_KEY); //localStorage.removeItem(DATA_KEY); if (oneTime) { localStorage.removeItem(DATA_KEY); } return _PluginPage.parseJSON(data); }, /** * 设置滑动返回(开启或关闭) * @param {Boolean} enable * @returns {Boolean} */ swipeBack: function (enable) { return true; }, /** * json字符串转换js对象 * @param jsonStr * @returns {*} */ parseJSON:function parseJSON(jsonStr) { if(!jsonStr) { return null; } var lastIdx = jsonStr.length - 1, result = jsonStr; if(("[" === jsonStr[0] && "]" === jsonStr[lastIdx]) || ("{" === jsonStr[0] && "}" === jsonStr[lastIdx])) { try { result = JSON.parse(jsonStr); } catch (e) { //ignore } } return result; } }; function getAbsoluteUrl(url) { var a = document.createElement('A'); a.href = url; // 设置相对路径给Image, 此时会发送出请求 url = a.href; // 此时相对路径已经变成绝对路径 var temp = a.parentNode&&a.parentNode.removeChild(a); return url; } }(window));