From 0721ef64025a093fe43b2d87c254acd10ed28ef6 Mon Sep 17 00:00:00 2001 From: java110 <928255095@qq.com> Date: Thu, 31 Mar 2022 23:37:48 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/java110/page/PageH5.js | 66 ++++++++++++++++++++++++++++++++------ 1 file changed, 57 insertions(+), 9 deletions(-) diff --git a/lib/java110/page/PageH5.js b/lib/java110/page/PageH5.js index 5dfac4b..152a671 100644 --- a/lib/java110/page/PageH5.js +++ b/lib/java110/page/PageH5.js @@ -15,14 +15,44 @@ import { import url from '../../../constant/url.js' +import {addMinutes} from "../utils/DateUtil.js" + export function pageOnLoad(options) { let _key = options.key; if (isNotNull(_key)) { //根据key 去做登录 - doLoginOwnerByKey(_key, callback); + doLoginOwnerByKey(_key, function(){ + // 可能存在 页面初始化等一些问题 这里删除连接中的key 然后刷新页面 + window.location.href = window.location.href.replace('key=','_keySuccess=') + }); } - getPageWAppId() + getPageWAppId(options); + + if (isNull(_key)) { + onLoadHasAuth(); + } + +} + +export function onLoadHasAuth(){ + let _url = window.location.href; + // if(_url.indexOf('hasLoaded')>-1){ + // return; + // } + + // _url = _url.indexOf("?")> -1 ?(_url+"&hasLoaded=ON"):(_url+"?hasLoaded=ON") + + let _hasLoadedObj = uni.getStorageSync("_hasLoadedObj"); + + let nowDate = new Date(); + if (_hasLoadedObj && _hasLoadedObj.expireTime > nowDate.getTime()) { + return ; + } + uni.setStorageSync("_hasLoadedObj",{ + expireTime:addMinutes(new Date(),15).getTime() + }); + doPageCheckSession(_url,_url,function(){}); } /** @@ -41,7 +71,7 @@ export function doLoginOwnerByKey(_key, callback = () => {}) { let _param = res.data; if (_param.code != 0) { uni.navigateTo({ - url: '/pages/showlogin/showlogin?wAppId=' + getPageWAppId() + url: '/pages/showlogin/showlogin?wAppId=' + getWAppId() }); return; } @@ -53,14 +83,19 @@ export function doLoginOwnerByKey(_key, callback = () => {}) { fail: function(error) { // 调用服务端登录接口失败 uni.navigateTo({ - url: '/pages/showlogin/showlogin?wAppId=' + getPageWAppId() + url: '/pages/showlogin/showlogin?wAppId=' + getWAppId() }); } }); } -export function getPageWAppId() { - let wAppId = getWAppId(); +export function getPageWAppId(options) { + let wAppId = options.wAppId; + if (!isNull(wAppId)) { + saveWAppId(wAppId) + return wAppId; + } + wAppId = getWAppId(); if (isNull(wAppId)) { uni.showToast({ icon: 'none', @@ -76,14 +111,25 @@ export function getPageWAppId() { * 页面 session * @param {Object} _call 回调函数 */ -export function pageCheckSession(_pageUrl,_call) { +export function doPageCheckSession(errorUrl,_pageUrl,_call) { let loginFlag = getLoginFlag(); let nowDate = new Date(); if (loginFlag && loginFlag.expireTime > nowDate.getTime()) { _call(); return; } - wechatRefreshToken('', 0, location.origin+'/#'+_pageUrl); + if(_pageUrl){ + wechatRefreshToken(errorUrl, 0, location.origin+'/#'+_pageUrl); + }else{ + wechatRefreshToken(errorUrl, 0, ''); + } +} +/** + * 页面 session + * @param {Object} _call 回调函数 + */ +export function pageCheckSession(_pageUrl,_call) { + doPageCheckSession('',_pageUrl,_call) } export function wechatRefreshToken(errorUrl, _login, _redirectUrl) { @@ -171,8 +217,10 @@ export function getPageLoginCode(options) { let code = options.code; if (code == '' || code == undefined) { //跳转鉴权 //1标识登录页面 请下发code 不要下发key - wechatRefreshToken('', 1, window.location.href); + wechatRefreshToken(window.location.href, 1, window.location.href); } resolve(code); }); } + +