我试图在我的 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”应用程序,除了添加警报和加速度计回调外没有任何修改。
最佳答案
将插件记录添加到 config.xml 不足以将插件添加到 cordova 应用程序。一些 native 代码应该通过 cordova 或 phonegap cli 安装并链接到导航器。
这是一个guide .
请参阅访问功能部分。
您可能会注意到,cordova cli 将为您处理 config.xml 的修改。
无论如何,我建议您使用这个不错的 grunt plugin .它可以通过 PluginID 或 url 轻松管理 phonegap 插件。对于这种情况,您可能会找到有关您的插件的信息 here和更多插件 here
关于javascript - 无法在 Cordova Android 应用程序中访问加速度计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20926868/