1. 程式人生 > 其它 >krpano使用陀螺儀

krpano使用陀螺儀

技術標籤:jskrpano

1,首先保證krpano中有三個檔案在1.19-pr16(build2018-04-04)版本以上,分別為gryo2.js。webvr.js。和tour.js(此js檔案對應krpano包中的krpano.js)

2,保證你的訪問域名為https,不是http,測試環境也要https(否則無法測試)測試環境請不要用ip,用域名

3,做到以上兩步才開始(基於javascript)
that.krpano.call("set(plugin[skin_gyro].enabled,true);");//開啟

that.krpano.call("set(plugin[skin_gyro].enabled,false);");//關閉

4,ios13以上需要獲取行動授權彈窗

    iosGrantedTips() {
      var that = this;
      var ua = navigator.userAgent.toLowerCase();
      if (ua.indexOf("like mac os x") > 0) {
        var reg = /os [\d._]*/gi;
        var verinfo = ua.match(reg);
        var version = (verinfo + "")
          .replace(/[^0-9|_.]/gi, "")
          .replace(/_/gi, ".");
        var arr = version.split(".");
        if (arr[0] > 12 && arr[1] > 2) {
          //對13.3以後的版本處理,包括13.3,
          DeviceMotionEvent.requestPermission()
            .then((permissionState) => {
              if (permissionState === "granted") {
                window.addEventListener("devicemotion", () => {});
                that.krpano.call("set(plugin[skin_gyro].enabled,true);");
                if (getStore('jiajukeji-gyro') === 'yes') return false;
                setStore({ name: 'jiajukeji-gyro', content: 'yes' });//ios在授權後第一次陀螺儀不會生效,此時做了判斷,使用瀏覽器儲存變數,通過判斷進行一次重新整理
                this.reload();
              } else {
                setStore({ name: 'jiajukeji-gyro', content: 'no' });
              }
            })
            
            });
        } else {
          //13.3以前的版本
        }
      }
    },

注意:如果出現krpano的錯誤圖層,需要在krpano標籤中設定,showerrors=“fasle”,在全域性事件<event>標籤中設定onloaderror=“”