2

我试图弄清楚如何使用本地网络服务器和适用于 iOS 的CordovaBrowser应用程序在 iPad 上运行加速度计示例。

我相信 CordovaBrowser 应用程序将所有插件都内置到本机托管应用程序中,我需要做的就是包含 cordova.ios.js 并且所有插件都可用。

当我从 CordovaBrowser 应用程序中浏览到该页面时,我只得到指示navigator.accelerometer是的输出null

这是HTML:

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>PhoneGap</title>
    <script src="js/cordova.ios.js"></script>
    <script src="Scripts/jquery-1.9.1.js"></script>
    <script src="ts/app.js"></script>
</head>
<body>
    <form id="form1" runat="server">
    <div id="Output">
    </div>
    </form>
</body>
</html>

这是 app.js:

$(function () {
    var output = $('#Output');

    try  {
        output.text('Loading ...');

        if(navigator) {
            output.text('Loaded Navigator ...');
        }

        if(navigator.accelerometer) {
            output.text('Loaded Accelerometer ...');
        }

        var watchID = navigator.accelerometer.watchAcceleration(function (acceleration) {
            output.text('Acceleration X: ' + acceleration.x + ', ' + 
                'Acceleration Y: ' + acceleration.y + ', ' + 
                'Acceleration Z: ' + acceleration.z + ', ' + 
                'Timestamp: ' + acceleration.timestamp);
        }, function () {
            output.text('Error!');
        }, {
            frequency: 300
        });
    } catch (e) {
        alert(e);
    }
});

所有引用的 js 文件都已正确加载。还缺少什么吗?

该应用程序的支持站点上几乎没有活动 - 这是一个重定向到 GitHub。并且基于唯一的问题,GitHub 仅适用于 Android,而不适用于 iOS 版本。这可能只是一个新应用程序中的错误,但也可能是 PhoneGap 开发有很多陷阱。

我会使用其他东西来保证为任意文件提供适当的 PhoneGap 环境。我使用了去年发布的一款名为Hyperlab的应用程序,它非常酷,但它不适用于 iPad,有一些怪癖,并且没有看到任何更新。

我没有/想要一台 Mac,我不想花 99 美元来愚弄这个。如果我们决定走使用 PhoneGap 开发原生应用程序的路线,也许稍后会。苹果很可笑。

4

2 回答 2

0

您应该为 deviceready 事件添加一个事件侦听器,然后从那里开始:

 document.addEventListener("deviceready", onDeviceReady, false);

 function onDeviceReady() {
    // Now safe to use the Cordova API
 }

注意:如果您没有 mac 或无法在实际设备上测试,您可以使用 chrome 进行调试和测试,并使用 chrome 工具更改加速度计值。脚步:

1-右键单击页面并单击检查元素

2-在右上角选择设置

3-选择覆盖并覆盖设备方向

注意:如果您使用的是 Chrome,则永远不会调用设备就绪事件,因此您应该在页面加载时调用它

于 2013-02-27T18:37:30.080 回答
-1

Cordova 加速度计依赖于仅与本机应用程序一起安装的cordova 库插件。在 Safari 中加载 JS 不会有同样的效果。您必须使用 iOS 设备支持的公共 JS API。我找到了一个适用于我的 iPad 的。

于 2013-02-19T23:07:09.297 回答