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了,小伙伴们了解了吗,有什么疑问请留言,大家一起讨论,共同进步。