有些代碼跑着跑着就報錯了,有些陀螺儀用着用着就不能用了。
目前時間是2020.4.4,發現 ios 13系統調用陀螺儀 需要申請用戶權限(這應該是個趨勢,后面安卓應該陸續跟進)。具體實現來看下:
1.申請權限的方法是:window.DeviceOrientationEvent.requestPermission,返回值是個promise,promise中會返回 用戶的 允許(“granted”)/拒絕(”denied“) 狀態;可能還有第三個值”prompt“,目前不知道怎么會返回這第三個值;
2.requestPermission方法的”首次“調用 需要 由用戶交互觸發(目前發現 click,touchend事件可以)。
2.1 先說下 ”首次“的含義。指的是用戶 完全退出app(而不是 app切換到后台運行) 后再次打開為首次。用戶在首次進入后 如果頁面需要陀螺儀權限,需要用戶交互才能觸發requestPermission方法。之后系統會記錄 用戶對本網址的授權信息,不退出app的情況下就不需要重復申請本權限了,本記錄信息會一直保留 直到完全退出app。
2.2 非首次調用的話 則不需要用戶交互 觸發,我們在頁面初始化時調用來拿到 用戶的 授權狀態 進而做一些處理。
2.3 如果首次調用 不是由 用戶觸發,比如 頁面初始化時 調用,則此方法的promis會返回reject狀態。
3.現在可以寫一下 大概邏輯流程。
4.需要注意,使用陀螺儀 需要https協議,且一經用戶授權/禁止,系統會保留用戶授權狀態,不再重復系統彈框,直到完全退出app。
5.上一個官方文檔,點這.
6.貼個代碼