nuxt_site/middleware/wechat.global.js
2024-05-02 21:28:18 +08:00

35 lines
1.4 KiB
JavaScript

export default defineNuxtRouteMiddleware((to, from) => {
// skip middleware on server
if (import.meta.server) return
// 判断是否为微信浏览器
if (!isWechat()) return
// 防止微信浏览器修改默认字体大小
if (typeof WeixinJSBridge == "object" && typeof WeixinJSBridge.invoke == "function") {
handleFontSize();
} else {
if (document.addEventListener) {
document.addEventListener("WeixinJSBridgeReady", handleFontSize, false);
} else if (document.attachEvent) {
document.attachEvent("WeixinJSBridgeReady", handleFontSize);
document.attachEvent("onWeixinJSBridgeReady", handleFontSize);
}
}
function handleFontSize() {
// 设置网页字体为默认大小
WeixinJSBridge.invoke('setFontSizeCallback', { 'fontSize': 0 });
// 重写设置网页字体大小的事件
WeixinJSBridge.on('menu:setfont', function () {
WeixinJSBridge.invoke('setFontSizeCallback', { 'fontSize': 0 });
});
}
if (sessionStorage.getItem('wechat_user')) return;
// 设置 session ,表示用户此次会话已经授权
sessionStorage.setItem('wechat_user', true)
const baseURL = useRuntimeConfig().public.apiGateway
window.location.href = baseURL + '/Wechat.Wechat/getAccess?refer_url=' + encodeURIComponent(window.location.href);
});