5個強大的HTML5 API 函數(shù)推薦

字號:


    HTML5提供了一些非常強大的JavaScript和HTML API,來幫助開發(fā)者構(gòu)建精彩的桌面和移動應(yīng)用程序。本文將介紹5個新型的API,希望對你的開發(fā)工作有所幫助。
    1. 全屏API(Fullscreen API)
    該API允許開發(fā)者以編程方式將Web應(yīng)用程序全屏運行,使Web應(yīng)用程序更像本地應(yīng)用程序。
    代碼如下:
    // 找到適合瀏覽器的全屏方法
    function launchFullScreen(element) {
    if(element.requestFullScreen) {
    element.requestFullScreen();
    } else if(element.mozRequestFullScreen) {
    element.mozRequestFullScreen();
    } else if(element.webkitRequestFullScreen) {
    element.webkitRequestFullScreen();
    }
    }
    // 啟動全屏模式
    launchFullScreen(document.documentElement); // the whole page
    launchFullScreen(document.getElementById("videoElement")); // any individual element
    2. 頁面可見性API(Page Visibility API)
    該API可以用來檢測頁面對于用戶的可見性,即返回用戶當前瀏覽的頁面或標簽的狀態(tài)變化。
    代碼如下:
    // 設(shè)置隱藏屬性和可見改變事件的名稱,屬性需要加瀏覽器前綴
    // since some browsers only offer vendor-prefixed support
    var hidden, state, visibilityChange;
    if (typeof document.hidden !== "undefined") {
    hidden = "hidden";
    visibilityChange = "visibilitychange";
    state = "visibilityState";
    } else if (typeof document.mozHidden !== "undefined") {
    hidden = "mozHidden";
    visibilityChange = "mozvisibilitychange";
    state = "mozVisibilityState";
    } else if (typeof document.msHidden !== "undefined") {
    hidden = "msHidden";
    visibilityChange = "msvisibilitychange";
    state = "msVisibilityState";
    } else if (typeof document.webkitHidden !== "undefined") {
    hidden = "webkitHidden";
    visibilityChange = "webkitvisibilitychange";
    state = "webkitVisibilityState";
    }
    // 添加一個標題改變的監(jiān)聽器
    document.addEventListener(visibilityChange, function(e) {
    // 開始或停止狀態(tài)處理
    }, false);
    3. getUserMedia API
    該API允許Web應(yīng)用程序訪問攝像頭和麥克風,而無需使用插件。
    代碼如下:
    // 設(shè)置事件監(jiān)聽器
    window.addEventListener("DOMContentLoaded", function() {
    // 獲取元素
    var canvas = document.getElementById("canvas"),
    context = canvas.getContext("2d"),
    video = document.getElementById("video"),
    videoObj = { "video": true },
    errBack = function(error) {
    console.log("Video capture error: ", error.code);
    };
    // 設(shè)置video監(jiān)聽器
    if(navigator.getUserMedia) { // Standard
    navigator.getUserMedia(videoObj, function(stream) {
    video.src = stream;
    video.play();
    }, errBack);
    } else if(navigator.webkitGetUserMedia) { // WebKit-prefixed
    navigator.webkitGetUserMedia(videoObj, function(stream){
    video.src = window.webkitURL.createObjectURL(stream);
    video.play();
    }, errBack);
    }
    }, false);
    4. 電池API(Battery API)
    這是一個針對移動設(shè)備應(yīng)用程序的API,主要用于檢測設(shè)備電池信息。
    代碼如下:
    var battery = navigator.battery || navigator.webkitBattery || navigator.mozBattery;
    // 電池屬性
    console.warn("Battery charging: ", battery.charging); // true
    console.warn("Battery level: ", battery.level); // 0.58
    console.warn("Battery discharging time: ", battery.dischargingTime);
    // 添加事件監(jiān)聽器
    battery.addEventListener("chargingchange", function(e) {
    console.warn("Battery charge change: ", battery.charging);
    }, false);
    5. Link Prefetching
    預(yù)加載網(wǎng)頁內(nèi)容,為瀏覽者提供一個平滑的瀏覽體驗。
    代碼如下:
    <!-- full page -->
    <link rel="prefetch" href="<a />
    <!-- just an image -->
    以上就是這5個新型的API了,小伙伴們了解了嗎,有什么疑問請留言,大家一起討論,共同進步。