监听用户切换浏览器标签页,切换回页面刷新页面
一、遇到的问题
用户在A页面,点击职位,新页面打开B页面,在B页面登录后,再切换回A页面想要直接是登录状态
二、解决
在A页面,监听用户切换浏览器标签页,切换回A页面执行操作
const visible = ref(false);
onMounted(() => {document.addEventListener("visibilitychange", e=>{// 监听到切换回页面if(document.visibilityState === "visible"){(api as any).User.isLogin().then(async (res) => {if(res){let userId = "hxr_" + res.userid + __SUFFIX__// 当前页面未登录,其他页面登录了;当前页面登录的和其他页面登录的不是一个账号if(userId != userID.value){visible.value = true;if (TUIKit.isSDKReady) {await TUIKit.logout();}// 切换回页面,重新走init()登录逻辑,相当于刷新页面了init();}}else{// 当前页面登录状态,其他页面退出登录了if(userID.value.indexOf('hxr_') !== -1){visible.value = true;if (TUIKit.isSDKReady) {await TUIKit.logout();}init();}}});}})// 正常加载页面的操作,init()里是登录逻辑if(!visible.value){init();}
});