CordovaBrowser应用iOS - 开始使用插件示例

时间:2013-02-19 16:10:38

标签: ios cordova

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

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

当我从CordovaBrowser应用中浏览页面时,我得到的输出表明navigator.accelerometernull

这是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开发本机应用程序的路线。苹果是荒谬的。

2 个答案:

答案 0 :(得分:0)

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

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

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

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

1-右键单击页面,然后单击检查元素

右上角的

2-选择设置

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

注意:如果您正在使用Chrome,则设备准备好的事件将永远不会被打电话,所以您应该在页面负载上打电话

答案 1 :(得分:-1)

Cordova Accelerometer依赖于cordova库插件,该插件仅与本机应用程序一起安装。在Safari中加载JS将不会产生相同的效果。您必须使用iOS设备支持的公共JS API。我的found one适用于我的iPad。