devicemotion 或者 deviceorientation在window.addEventListener 事件中不生效,没有输出内容

问题:devicemotion 或者 deviceorientation 在window.addEventListener 事件中不生效,没有输出内容

原因:

1、必须在Https协议下才可使用

2、必须用户手动点击click事件中调用 ,进行权限申请

源码:

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=375,user-scalable=0">
    <title>deviceorientation</title>
</head>
<body>
 
<button onclick="start()">start</button>
<script>
    (function () { var script = document.createElement('script'); script.src="https://cdn.jsdelivr.net/npm/eruda"; document.body.appendChild(script); script.onload = function () { eruda.init() } })();
    
    function start(){
        if(!DeviceMotionEvent){
            console.error('暂时不支持')
        }else{
            if(
                DeviceMotionEvent.requestPermission
            ){
                DeviceMotionEvent.requestPermission().then(permissionState => {
                    console.log(permissionState)
                    if (permissionState === 'granted') {
                        // window.addEventListener('devicemotion', function(e) { console.log('devicemotion', e)}, true);
                        window.addEventListener('deviceorientation', function(event) { console.log('deviceorientation', event) ; console.log(`${event.alpha} : ${event.beta} : ${event.gamma}`);}, true);
                    }
                }).catch((err) => {
                    console.error(err);
                });
            }else{
                // window.addEventListener('devicemotion', function(e) { console.log('devicemotion', e)}, true);
                window.addEventListener('deviceorientation', function(event) { console.log('deviceorientation', event) ; console.log(`${event.alpha} : ${event.beta} : ${event.gamma}`);}, true);
            }
        }
    }
    window.onload=function(){
        start() //此处调用无效,没有内容输出
    }
</script>

</body>
</html>
相关推荐
弓.长.3 小时前
React Native 鸿蒙跨平台开发:实现一个多功能单位转换器
javascript·react native·react.js
摘星编程3 小时前
React Native for OpenHarmony 实战:ToggleSwitch 切换开关详解
javascript·react native·react.js
满栀5853 小时前
分页插件制作
开发语言·前端·javascript·jquery
qq_406176144 小时前
深入剖析JavaScript原型与原型链:从底层机制到实战应用
开发语言·前端·javascript·原型模式
弓.长.4 小时前
React Native 鸿蒙跨平台开发:BottomSheet 底部面板详解
javascript·react native·react.js
摘星编程4 小时前
React Native for OpenHarmony 实战:Permissions 权限管理详解
javascript·react native·react.js
闲蛋小超人笑嘻嘻5 小时前
Vue 插槽:从基础到进阶
前端·javascript·vue.js
摘星编程5 小时前
React Native for OpenHarmony 实战:SearchBar 搜索栏详解
javascript·react native·react.js
梦6507 小时前
Vue 单页面应用 (SPA) 与 多页面应用 (MPA) 对比
前端·javascript·vue.js
清铎7 小时前
大模型训练_week3_day15_Llama概念_《穷途末路》
前端·javascript·人工智能·深度学习·自然语言处理·easyui