[英]Cannot access accelerometer in Cordova Android app
我試圖在我的Cordova [3.3.1-0.1.2] Android應用程序中訪問navigator.accelerometer,並且在Android [4.0.3]模擬器中運行時navigator.accelerometer是未定義的。
設置Cordova應用時,我遵循了本教程: http : //www.techariv.in/2013/08/creating-android-hello-cordova.html
我在<widget>
內的www / config.xml中添加了以下內容:
<plugin name="Accelerometer" value="org.apache.cordova.AccelListener" />
我也嘗試過
<plugin name="Accelerometer" value="CDVAccelerometer" />
另外,我在www / js / index.js中具有以下內容(它確實加載了執行):
onDeviceReady: function() {
app.receivedEvent('deviceready');
alert(navigator.accelerometer);
navigator.accelerometer.getCurrentAcceleration(function() {
alert('success');
}, function() {
alert('fail');
});
},
當應用運行時,我會收到一條警告,其中僅顯示“未定義”。 均未調用getCurrentAcceleration()的回調。
請注意,onDeviceReady()通過
document.addEventListener('deviceready', this.onDeviceReady, false)
(這是標准的“ Hello World”應用程序,除了添加了警報和加速計回調外,沒有任何修改。
這就是我能夠在android上訪問加速度計的方式。
安裝設備運動插件cordova plugin add org.apache.cordova.device-motion
然后在onDeviceReady回調中:
window.addEventListener("devicemotion", deviceMotionUpdate, true);
function deviceMotionUpdate(e){
console.log("x: ", e.accelerationIncludingGravity.x);
console.log("y: ", e.accelerationIncludingGravity.y);
console.log("z: ", e.accelerationIncludingGravity.z);
}
如果您沒有遠程調試設置,則可能需要將console.logs更改為警報。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.