客户提出要摇一摇自动播放视频的功能
在做摇一摇的时候出现了问题:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18//摇一摇(使用DeviceMotion事件)
shake() {
var speed = 15; // 用来判定的加速度阈值,太大了则很难触发
var x, y, z, lastX, lastY, lastZ;
x = y = z = lastX = lastY = lastZ = 0;
window.addEventListener('devicemotion', function (event) {
var acceleration = event.accelerationIncludingGravity;
x = acceleration.x;
y = acceleration.y;
if (Math.abs(x - lastX) > speed || Math.abs(y - lastY) > speed) {
// 用户设备摇动了,触发响应操作
// 此处的判断依据是用户设备的加速度大于我们设置的阈值
alert('摇了');
}
lastX = x;
lastY = y;
}, false);
}
上面这段代码在安卓手机上运行没有一点问题,但是ios上怎么都不出来效果(真的愁死)
后来在输出1
alert(window.EdviceMotionEvent)
发现ios上是有这个事件的,但就是没有弹出“摇了”这个弹出框
后来发现ios新系统版本摇一摇事件需要https协议(真的是被搞死)
1 | 问题:window.DeviceMotionEvent 在ios中是有定义的,但就是不触发 devicemotion 事件; |