0
有沒有辦法通過訪問加速計,指南針或其他方式來檢測科爾多瓦的物理設備方向?在科爾多瓦檢測設備方向
我想檢測一個設備是側向(即,橫向)或直立(即縱向)。除了:cordova detecting orientation change我將無法通過window.orientation
使用定位,因爲在用戶鎖定其方向時失敗。
我不需要知道用戶所處的模式。只需要知道設備是橫向還是豎直。
有沒有辦法通過訪問加速計,指南針或其他方式來檢測科爾多瓦的物理設備方向?在科爾多瓦檢測設備方向
我想檢測一個設備是側向(即,橫向)或直立(即縱向)。除了:cordova detecting orientation change我將無法通過window.orientation
使用定位,因爲在用戶鎖定其方向時失敗。
我不需要知道用戶所處的模式。只需要知道設備是橫向還是豎直。
我找到了描述how device orientation can be read from accelerometer despite a locked device orientation的博客條目。
相關代碼段在Objective-C提供的,而是自然適用於PhoneGap的,因爲它可被翻譯,並且經由Cordova's Device Motion Plugin使用。
這裏的原始:
float x = -[acceleration x];
float y = [acceleration y];
float angle = atan2(y, x);
if(angle >= −2.25 && angle <= −0.75) {
//OrientationPortrait
} else if(angle >= −0.75 && angle <= 0.75){
//OrientationLandscapeRight
} else if(angle >= 0.75 && angle <= 2.25) {
//OrientationPortraitUpsideDown
} else if(angle <= −2.25 || angle >= 2.25) {
//OrientationLandscapeLeft];
}
說明:對於任何實際的參數x和y這兩者不都是等於零,ATAN2(Y,X)是在正x之間的弧度的角度一個平面的軸和由它指定的座標給出的點。該角度對於逆時針角度爲正,對於順時針角度爲負。
的[科爾多瓦檢測取向變化]可能的複製(http://stackoverflow.com/questions/28283061/cordova-detecting-orientation-change) – str
感謝您的指針。我編輯了這個問題。建議的解決方案不能解決鎖定的設備方向。 – zaph0t