我的PHP之旅
html5谷歌浏览器/火狐浏览器的桌面通知
post by:风子 2014-4-30 13:25

先看一下Discuz!中的谷歌js代码

function Html5notification() {
	var h5n = new Object();

	h5n.issupport = function() {
		var is = !!window.webkitNotifications;
		if(is) {
			if(window.webkitNotifications.checkPermission() > 0) {
				window.onclick = function() {
					window.webkitNotifications.requestPermission();
				}
			}
		}
		return is;
	};

	h5n.shownotification = function(replaceid, url, imgurl, subject, message) {
		if(window.webkitNotifications.checkPermission() > 0) {
			window.webkitNotifications.requestPermission();
		} else {
			var notify = window.webkitNotifications.createNotification(imgurl, subject, message);
			notify.replaceId = replaceid;
			notify.onclick = function() {
				window.focus();
				window.location.href = url;
				notify.cancel();
			};
			notify.show();
		}
	};

	return h5n;
}

如何定时关闭呢,

    if (window.webkitNotifications) { //是否存在api
         if (window.webkitNotifications.checkPermission() == 0) { //是否有权限了
               var pop =  window.webkitNotifications.createNotification('http://i8.baidu.com/it/u=2683190826,2755071058&fm=96&s=A8208C18533E458852E8E5D2030030B3', '来了', '你知道吗');
               pop.ondisplay = function(event) {
                   setTimeout(function() {
                       event.currentTarget.cancel();//关闭
                   }, 3000);
               }
               pop.show(); //显示
           } else {
               window.webkitNotifications.requestPermission();//激活是否显示通知对话条
               return;
           }
     }

注意,一定要用户点击才能激发权限判断显示通知的

下面是火狐浏览器的

 

function notifyMe() {
  // Let's check if the browser supports notifications
  if (!("Notification" in window)) {
    alert("This browser does not support desktop notification");
  }

  // Let's check if the user is okay to get some notification
  else if (Notification.permission === "granted") {
    // If it's okay let's create a notification
    var notification = new Notification("Hi there!");
  }

  // Otherwise, we need to ask the user for permission
  // Note, Chrome does not implement the permission static property
  // So we have to check for NOT 'denied' instead of 'default'
  else if (Notification.permission !== 'denied') {
    Notification.requestPermission(function (permission) {

      // Whatever the user answers, we make sure we store the information
      if(!('permission' in Notification)) {
        Notification.permission = permission;
      }

      // If the user is okay, let's create a notification
      if (permission === "granted") {
        var notification = new Notification("Hi there!");
      }
    });
  }

  // At last, if the user already denied any notification, and you
  // want to be respectful there is no need to bother him any more.
}
//来源:https://developer.mozilla.org/en/docs/Web/API/notification

 

 

 

 

 

 

评论:
发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容