開啟桌面通知需要檢測當前瀏覽器是否支持并且有授權,示例代碼如下:
- if (!("Notification" in window) && !window.webkitNotifications) {
- //不支持
- alert("很遺憾,您當前瀏覽器不支持該功能!\n建議在360、谷歌、火狐等瀏覽器上使用此功能");
- } else if (Notification.permission != undefined && Notification.permission != null) {
- if (Notification.permission != "granted") {
- /*未授權(谷歌、火狐) 此處省略 300行*/
- }
- } else if (Notification.permission == null || Notification.permission == undefined) {
- if (window.webkitNotifications.checkPermission() != 0) {
- /*未授權(360系列) 此處省略 300行*/
- }
- }else {
- /*支持并已授權(此處省略 300行) */
- }
效果圖如下:
桌面通知調用方法(windowsNotify)如下:
- /*
- * 桌面通知
- * strNewsContent:通知的內容
- */
- function windowsNotify(strNewsContent) {
- if (!("Notification" in window) && !window.webkitNotifications && window.webkitNotifications.checkPermission() != 0)
- return;
- if (Notification.permission == null || Notification.permission == undefined)
- windowsNotify360(strNewsContent);
- else if (Notification.permission === "granted")
- windowsNotifyFFAndGE(strNewsContent);
- else if (Notification.permission !== 'denied') {
- Notification.requestPermission(function (permission) {
- if (!('permission' in Notification))
- Notification.permission = permission;
- if (permission === "granted")
- windowsNotifyFFAndGE(strNewsContent);
- });
- }
- }
- //桌面通知(兼容360)
- function windowsNotify360(strNewsContent) {
- if (window.webkitNotifications && window.webkitNotifications.checkPermission() == 0) {
- var notify = window.webkitNotifications.createNotification(
- "http://www.fx678.com/corp/images/aboutus/htw.jpg",
- '匯通-新聞中心',
- strNewsContent
- );
- //設置定時撤銷機制,防止通知長時間顯示不被關閉
- notify.ondisplay = function (event) {
- setTimeout(function () {
- event.currentTarget.cancel();
- }, 10000);
- };
- //下面是定義點擊事件,類似地還可定義其它事件
- notify.onclick = function () {
- window.focus();
- this.cancel();
- };
- //彈出
- notify.show();
- } else if (window.webkitNotifications) {
- window.webkitNotifications.requestPermission(windowsNotify360);
- }
- }
- //桌面通知(兼容火狐、谷歌)
- function windowsNotifyFFAndGE(strNewsContent) {
- var notification = new Notification('匯通-新聞中心',
- {
- body: strNewsContent,
- icon: "http://www.fx678.com/corp/images/aboutus/htw.jpg"
- });
- //設置定時撤銷機制,防止通知長時間顯示不被關閉
- notification.ondisplay = function (event) {
- setTimeout(function () {
- event.currentTarget.cancel();
- }, 10000);
- };
- //下面是定義點擊事件,類似地還可定義其它事件
- notification.onclick = function () {
- window.focus();
- this.cancel();
- };
- }
效果圖如下:
下一篇 如何更有效地為網站布置外鏈