我有以下代码来检查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次加速度计数据。
答案 0 :(得分:2)
我发现现在这些功能仅在iOS Safari浏览器中实现。所以我们不能在iOS中捕获这些事件。
答案 1 :(得分:1)
尝试在Android中侦听“调整大小”事件。如果您使用的是jQuery,那么您的代码可能如下所示:
$(window).bind('resize', function() {
alert('resize!');
});
答案 2 :(得分:0)
在iOS上,您需要捕获的事件是“onorientationchange”