# IOS13 之后浏览器获取动作与方向需要用户授权

2020-10-28

# 解决方式

通过点击事件,触发用户主动授权

document.body.addEventListener("touchend", function() {
  if (/(Android)/i.test(navigator.userAgent)) {
    return;
  } else if (
    typeof window.DeviceMotionEvent !== "undefined" &&
    typeof window.DeviceMotionEvent.requestPermission === "function"
  ) {
    // (optional) Do something before API request prompt.
    window.DeviceMotionEvent.requestPermission().then((response) => {
      // (optional) Do something after API prompt dismissed.
      if (response == "granted") {
        // window.addEventListener("devicemotion", (e) => {
        //     // do something for 'e' here.
        // })
        window.addEventListener("devicemotion", false);
      } else {
        alert("您的手机不支持摇一摇ヾ(◍°∇°◍)ノ゙");
      }
    });
  }
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

# 结论

通过一些交互,引导用户触发浏览器获取动作与方向的授权,在用户同意授权之后,再执行相关操作