欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

5 个强大的HTML5 API 函数推荐

程序员文章站 2023-11-13 08:15:58
本文给大家推荐了5个html5的新型API函数,包括全屏API(Fullscreen API)、页面可见性API(Page Visibility API)、getUserMedia API、电池API(Battery API)、 Link Prefetching。... 14-11-19...

html5提供了一些非常强大的javascript和html api,来帮助开发者构建精彩的桌面和移动应用程序。本文将介绍5个新型的api,希望对你的开发工作有所帮助。

  1.  全屏api(fullscreen api)

  该api允许开发者以编程方式将web应用程序全屏运行,使web应用程序更像本地应用程序。


复制代码
代码如下:

// 找到适合浏览器的全屏方法
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可以用来检测页面对于用户的可见性,即返回用户当前浏览的页面或标签的状态变化。


复制代码
代码如下:

// 设置隐藏属性和可见改变事件的名称,属性需要加浏览器前缀
// 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";
}
// 添加一个标题改变的监听器
document.addeventlistener(visibilitychange, function(e) {
// 开始或停止状态处理
}, false);

 
  3.  getusermedia api

  该api允许web应用程序访问摄像头和麦克风,而无需使用插件。


复制代码
代码如下:

// 设置事件监听器
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);
};
// 设置video监听器
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)

  这是一个针对移动设备应用程序的api,主要用于检测设备电池信息。


复制代码
代码如下:

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);
// 添加事件监听器
battery.addeventlistener("chargingchange", function(e) {
console.warn("battery charge change: ", battery.charging);
}, false);

  5.  link prefetching

  预加载网页内容,为浏览者提供一个平滑的浏览体验。


复制代码
代码如下:

<!-- full page -->
<link rel="prefetch" href="<a href="http://davidwalsh.name/css-enhancements-user-experience">http://davidwalsh.name/css-enhancements-user-experience</a>" />
<!-- just an image -->

以上就是这5个新型的api了,小伙伴们了解了吗,有什么疑问请留言,大家一起讨论,共同进步。