Android上的HTML 5中的设备方向问题

时间:2011-08-25 09:50:00

标签: javascript iphone android ipad html5

我有以下代码来检查HTML 5中的设备方向和设备运动处理。我从http://dev.w3.org/geo/api/spec-source-orientation.html得到了这个。我使用iPhone3G测试了我的代码并且运动事件被困住了。我不知道为什么设备方向没有被困住。我相信由于iPhone3G没有Compass支持,我无法捕获'compassneedscalibration'事件。

我在Android的浏览器中测试了该应用程序。 (HTC Wildfire)。我无法得到任何事件。请分享您为什么我们不在Android Mobile中获取活动?

 window.addEventListener("compassneedscalibration", function(event) {
                  alert('Your compass needs calibrating! Wave your device in a figure-eight motion');
                  event.preventDefault();


     }, true);

    window.addEventListener("deviceorientation", function(event) {
                  // process event.alpha, event.beta and event.gamma
                  alert("deviceorientation");
    }, true);

    window.addEventListener("devicemotion", function(event) {
                  // Process event.acceleration, event.accelerationIncludingGravity,
                  // event.rotationRate and event.interval
                   alert("devicemotion");
    }, true);

更新1

我在iPhone和iPad上进行测试时注意到的一件事是,无论设备是否移动,事件都会在任何停止时不断触发。

更新2

我找到了我在 UPDATE 1 中提出的问题背后的原因。似乎API每秒检测并提供50次加速度计数据。

3 个答案:

答案 0 :(得分:2)

我发现现在这些功能仅在iOS Safari浏览器中实现。所以我们不能在iOS中捕获这些事件。

消息来源:http://www.mobilexweb.com/samples/ball.html

答案 1 :(得分:1)

尝试在Android中侦听“调整大小”事件。如果您使用的是jQuery,那么您的代码可能如下所示:

$(window).bind('resize', function() {
    alert('resize!');
});

答案 2 :(得分:0)

在iOS上,您需要捕获的事件是“onorientationchange”