import { computed, defineComponent, onMounted, ref, onBeforeUnmount } from 'vue'; import { NConfigProvider, zhCN, dateZhCN, NModal } from 'naive-ui'; import { AppProvider } from './components/Application'; import { RouterView } from 'vue-router'; import setting from './settings/designSetting'; import { lighten } from './utils'; import RouterError from './components/RouterError'; import { tryOnUnmounted } from '@vueuse/core'; export default defineComponent({ name: 'App', setup() { const isIOSChrome = ref(); const getThemeOverrides = computed(() => { const appTheme = setting.appTheme; const lightenStr = lighten(setting.appTheme, 6); return { common: { primaryColor: appTheme, primaryColorHover: lightenStr, primaryColorPressed: lightenStr }, LoadingBar: { colorLoading: appTheme } }; }); // const showModal = ref(false); const showModalMsg = ref(''); // 判断浏览器 // 是否是360 const check360 = () => { const result = false; for (const key in navigator.plugins) { // np-mswmp.dll只在360浏览器下存在 if (navigator.plugins[key].filename == 'internal-nacl-plugin') { return !result; } } return result; }; // const isChrome = () => { const isChromium = window.chrome, winNav = window.navigator, vendorName = winNav.vendor, isOpera = winNav.userAgent.indexOf('OPR') > -1, isIEedge = winNav.userAgent.indexOf('Edge') > -1, isIOSChrome = winNav.userAgent.match('CriOS'), // QQ isQQBriwser = winNav.userAgent.indexOf('QQBrowser') > -1 || winNav.userAgent.indexOf('QQ') > -1, // 搜狗 isSouggou = winNav.userAgent.indexOf('se 2.x') > -1 || winNav.userAgent.indexOf('MetaSr') > -1, // 360 is360 = check360() && winNav.userAgent.indexOf('Safari') > -1, // 遨游 isMaxthon = winNav.userAgent.indexOf('Maxthon') > -1, // 是否为2345浏览器 is2345Explorer = winNav.userAgent.includes('2345Explorer'), // 世界之窗 isTheWorld = winNav.userAgent.indexOf('TheWorld') > -1, // 猎豹 isLiebao = winNav.userAgent.indexOf('LBBROWSER') > -1; console.log(isQQBriwser, isSouggou, is360, isMaxthon, is2345Explorer, isTheWorld, isLiebao) if (isIOSChrome) { return true; } else if ( isChromium !== null && typeof isChromium !== 'undefined' && vendorName === 'Google Inc.' && isOpera === false && isIEedge === false && isQQBriwser === false && isSouggou === false && is360 === false && isMaxthon === false && is2345Explorer === false && isTheWorld === false && isLiebao === false ) { return true; } else { return false; } }; // 获取谷歌版本 const getChromeVersion = () => { const arr = navigator.userAgent.split(' '); let chromeVersion = '' as any; for (let i = 0; i < arr.length; i++) { if (/chrome/i.test(arr[i])) chromeVersion = arr[i]; } if (chromeVersion) { return Number(chromeVersion.split('/')[1].split('.')[0]); } else { return false; } }; const isChromeFlag = isChrome(); console.log('isChromeFlag', isChromeFlag); if (isChromeFlag) { const chromeVersion = getChromeVersion(); if (!chromeVersion || (chromeVersion && chromeVersion < 100)) { showModalMsg.value = '您当前的chrome版本过低,为了保证您的用户体验请升级后使用'; // showModal.value = true; } // if (chromeVersion) { // return Number(chromeVersion.split('/')[1].split('.')[0]); // } else { // return false; // } } else { showModalMsg.value = '为了保证您的用户体验,请使用chrome打开,点击确定下载'; // showModal.value = true; console.log('---'); } const submitCallback = () => { window.open('https://www.google.cn/intl/zh-CN/chrome/'); }; return () => ( <> {/* */} ); } });