zoukankan      html  css  js  c++  java
  • 需要留意的5个HTML5 JavaScript API

    电池状态API

    电池状态API允许任何网页通过javascript检查设备(笔记本电脑,手机或平板电脑)电池的状态:

    1 var battery = navigator.battery || navigator.webkitBattery || navigator.mozBattery
    2 
    3 console.log("Battery charging: ", battery.charging); // true
    4 console.log("Battery level: ", battery.level); // 0.58
    5 console.log("Battery discharging time: ", battery.dischargingTime);

    正如你可以看到,你需要做更多的检查,使你的代码跨浏览器兼容,我已经做了一些研究,我发现了一个电池状态API的小的包装类,battery.js

     1 if(Battery.isSupported()) {
     2     // Get the battery status
     3     var status = Battery.getStatus();
     4     console.log('Level: ' + Math.floor(status.level * 100) + '%'); // 30%
     5     console.log('Charging: ' + status.charging);                   // true
     6     console.log('Time until charged: ' + status.chargingTime);     // 3600 (seconds) or Infinity
     7     console.log('Battery time left: ' + status.dischargingTime);   // 3600 (seconds) or Infinity
     8 
     9     // Register a handler to get notified when battery status changes
    10     Battery.onUpdate = function(status) {
    11         console.log(status); // {level, charging, chargingTime, dischargingTime}
    12     };
    13 }

    手柄API


    手柄API允许基于浏览器的游戏连接你的计算机和控制台游戏手柄。随着HTML5游戏的普及,增加的这个API在将来会非常有用。

     1 navigator.gamepads = navigator.webkitGamepads || navigator.MozGamepads;
     2 
     3 var requestAnimationFrame = window.webkitRequestAnimationFrame ||
     4                             window.mozRequestAnimationFrame;
     5 var cancelAnimationFrame = window.webkitCancelAnimationFrame ||
     6                            window.MozCancelAnimationFrame;
     7 
     8 var controllers = {}; // Stash connected controllers.
     9 var reqId = null;
    10 
    11 function onConnected(e) {
    12     controllers[e.gamepad.index] = e.gamepad;
    13     runAnimation();
    14 }
    15 
    16 function onDisconnected(e) {
    17     delete controllers[e.gamepad.index];
    18     cancelAnimationFrame(reqId);
    19 }
    20 
    21 window.addEventListener('webkitgamepadconnected', onConnected, false);
    22 window.addEventListener('webkitgamepaddisconnected', onDisconnected, false);
    23 
    24 window.addEventListener('MozGamepadDisconnected', onDisconnected, false);
    25 window.addEventListener('MozGamepadConnected', onConnected, false);

    资料来源The Edge of HTML5
    有一个类库叫做gamepadjs,会让你很容易的使用这个API.

    设备定向API


    使用设备定向API,你能确定设备的方向,以及收集它的运动(α,β和γ)信息。

     

     1 if (window.DeviceOrientationEvent) {
     2     window.addEventListener('deviceorientation', function(event) {
     3         var a = event.alpha,
     4             b = event.beta,
     5             g = event.gamma;
     6         console.log('Orientation - Alpha: ' + a + ', Beta: '+ b + ', Gamma: ' + g);
     7     }, false);
     8 } else {
     9     console.log('This device does not support deviceorientation');
    10 }

    要使用此功能,你的设备必须具有陀螺仪功能,caniuse.com上可以找到更多浏览器支持

    地理位置API


    地理位置API可以让你通过信任的网站分享你的位置。也可以在网页中通过JavaScript使用经度度和纬度,将定位到的东西发送回远程Web服务器,例如,发现当地企业或在地图上显示你的位置,它可以用做“Geo-tagging”来处理用户的内容,如照片。

     1 if (navigator.geolocation) {
     2     navigator.geolocation.getCurrentPosition(function(position) {
     3         var lat = position.coords.latitude,
     4             lon = position.coords.longitude;
     5         console.log('Geolocation - Latitude: '+ lat +', Longitude: '+ lon);
     6     });
     7 }
     8 else {
     9     console.log('Geolocation is not supported for this Browser/OS version yet.');
    10 }

    caniuse.com上可以找到更多浏览器支持

    页面可见性API

    页面可见性API能让你确定你的页面是可见的或不可见的,当你最小化页面或移动到另一个选项卡时,visibilitychange 事件会被触发,如果你是一个游戏开发者的话,这将非常有用,当用户改变页面时会暂停游戏。

     

    1 document.addEventListener('visibilitychange', function(e) {
    2     console.log('hidden:' + document.hidden,
    3               'state:' + document.visibilityState)
    4 }, false);

    caniuse.com上可以找到更多浏览器支持

     

     

    原文链接:需要留意的5个HTML5 JavaScript API

     

    原文链接:http://daker.me/2013/06/5-html5-javascript-apis-to-keep-an-eye-on.html

  • 相关阅读:
    理解MapReduce计算构架
    熟悉HBase基本操作
    爬虫大作业
    熟悉常用的HDFS操作
    数据结构化与保存
    使用正则表达式,取得点击次数,函数抽离
    爬取校园新闻首页的新闻
    网络爬虫基础练习
    课后作业-阅读任务-阅读提问-5
    课后作业-阅读任务-阅读提问-4
  • 原文地址:https://www.cnblogs.com/atong/p/3116572.html
Copyright © 2011-2022 走看看