ios 摇一摇 vue3

这段代码主要用于检测用户设备是否为Android或iOS,并根据设备类型和系统版本处理DeviceMotionEvent。在iOS13及以上版本,它会请求用户授权访问设备运动数据。如果用户同意,会添加事件监听器处理设备运动事件。
摘要由CSDN通过智能技术生成
//增加代码
    var ua = navigator.userAgent.toLowerCase();
    // console.log(ua,'ua')
    if(ua.indexOf('Android') > -1 || ua.indexOf('Adr') > -1 || ua.indexOf('android') != -1) {
        isIOS.value = false;
        // console.log(isIOS.value,'isIOS.value')
    }
    if (ua.indexOf("like mac os x") > 0) {
    var reg = /os [\d._]*/gi;
    var verinfo = ua.match(reg);
    var version = (verinfo + "").replace(/[^0-9|_.]/ig, "").replace(/_/ig, ".");
    var arr = version.split(".");
    isIOS.value = true;
    // console.log(isIOS.value,'isIOS.value')
    // console.log(reg,'reg')
    // console.log(verinfo,'verinfo')
    // console.log(version,'version')
    // console.log(arr,'arr')
    // console.log(arr[0], 'arr[0]');
    // console.log(window.DeviceMotionEvent.requestPermission,'window.DeviceMotionEvent.requestPermission')
    // console.log(window.DeviceOrientationEvent.requestPermission,'window.DeviceOrientationEvent.requestPermission')
    if (arr[0] > 12 && arr[1] > 2 && window.DeviceMotionEvent) {  //对13以后的版本处理,
        // authorization.value = true;
        window.addEventListener('devicemotion',deviceMotionHandler, false);
    } else {  //13以前的版本
        if (window.DeviceMotionEvent) { 
            window.addEventListener('devicemotion',deviceMotionHandler, false);  
        }
    }
    
    }
    
    function consentToAuthorization(){ //ios用户点击 '这里' 链接触发
        window.localStorage.setItem('agree_IOS',true)
        if (typeof(DeviceMotionEvent) !== 'undefined' && typeof(DeviceMotionEvent.requestPermission) === 'function') {
            window.DeviceMotionEvent.requestPermission().then(permissionState => {
                if (permissionState === "granted" && window.DeviceMotionEvent) { //允许
                    window.addEventListener('devicemotion',deviceMotionHandler, false);  
                }
                if (permissionState === "denied") {
                    console.log("你拒绝了");
                }
            }).catch((err) => {
                console.log(err,'err')
            });
        } else {
            console.log('deviceMotionEvent is not defined')
        }
    }
    
    function showPopup(){
        if(window.localStorage.getItem('agree_IOS') == null){
            // authorization.value = true;
            consentToAuthorization()
        }else {
            document.getElementsByClassName('aClick').onclick = null;
        }
        
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值