检测当前屏幕是手机,pc电脑还是平板

检测当前屏幕是手机,pc电脑还是平板

以下是vue3的示例代码:

setup(){

     const type = ref()

     const getDeviceInfo = () => {
                const ua = navigator.userAgent;
                const isWindowsPhone = /(?:Windows Phone)/.test(ua);
                const isSymbian = /(?:SymbianOS)/.test(ua) || isWindowsPhone;
                const isAndroid = /(?:Android)/.test(ua);
                const isFireFox = /(?:Firefox)/.test(ua); // 注意:这里检测的是浏览器,而不是操作系统
                const isChrome = /(?:Chrome|CriOS)/.test(ua); // 同上
                const isIPad = /(?:iPad)/.test(ua); // 单独检测iPad,因为iPad是平板
                const isPlayBook = /(?:PlayBook)/.test(ua); // 单独检测PlayBook,因为PlayBook是平板
                const isTablet = isIPad || isPlayBook || (isAndroid && !/(?:Mobile)/.test(ua)) ||
                    (isFireFox && /(?:Tablet)/.test(ua));
                const isIPhone = /(?:iPhone)/.test(ua); // 单独检测iPhone
                const isPhone = isIPhone && !isTablet; // 这里的逻辑可能需要根据实际情况调整
                const isPc = !isPhone && !isAndroid && !isSymbian && !isTablet; // 排除手机、安卓、塞班、平板

                // return {
                //     isTablet: isTablet,
                //     isPhone: isPhone,
                //     isAndroid: isAndroid,
                //     isPc: isPc
                // };
                if (isAndroid || isPhone) {
                    // 手机
                    type.value = "手机"
                    // console.log("---------手机");
                } else if (isTablet) {
                    // 平板
                    type.value = "平板"
                    // console.log("---------平板");
                } else if (isPc) {
                    // 电脑
                    type.value = "电脑"
                    // console.log("---------电脑");
                }
            }


 // 更新窗口尺寸的函数
            const updateWindowSize = () => {
                windowWidth.value = window.innerWidth; // 更新窗口宽度
                windowHeight.value = window.innerHeight; // 更新窗口高度
                screenWidth.value = window.screen.width
                screenHeight.value = window.screen.height
                getDeviceInfo()
                if (type.value == "电脑") {
                    // console.log(windowWidth.value,"电脑",windowHeight.value)
                    if (1200 <= windowWidth.value <= 769) {
                        cols.value = 4
                        // console.log("电脑----769---1200")
                    }
                } else if (type.value == "手机") {
                    // console.log("手机",screenWidth.value,screenHeight.value)
                    cols.value = 2
                    // console.log("手机----")
                } else if (type.value == "平板") {

                }
            };
//添加事件
 onMounted(() => {
                window.addEventListener('resize', updateWindowSize);
            });

      return {
                screenWidth,//手机
                screenHeight,//
                windowWidth,//电脑
                windowHeight,//
              }
    }

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值