javascript - 无法在 Cordova Android 应用程序中访问加速度计

标签 javascript android cordova

我试图在我的 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/

相关文章:

javascript - 模拟服务返回对象($$state)错误

android - 在 Android 设备上捕获未处理/原始麦克风数据

android - 为什么进度改变了不叫?

android - 使用 PhoneGap 上传 iOS 应用程序的清晰步骤

javascript - 一旦 .js 文件转换为 UTF8,HTML5/JS 应用程序不会调用 index.html 中列出的 .js 文件之一

node.js - 安装 Ionic 框架 - 设置环境变量 - 不起作用。

javascript - 页面加载时调用更改事件?

javascript - 使用正则表达式分割 javascript 字符串以将数字与其他字符分开

javascript - 将文本附加到文本区域的特定行之后\n

android - 只有一个动画发生在 overridePendingTransition