国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

瀏覽器使用Notification桌面通知消息推送

這篇具有很好參考價值的文章主要介紹了瀏覽器使用Notification桌面通知消息推送。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

瀏覽器桌面通知功能詳解

什么是 Notification?

  • Notification 是瀏覽器最小化后在桌面顯示消息的一種方法

  • 類似于 360 等流氓軟件在桌面右下角的彈窗廣告

  • 它與瀏覽器是脫離的,消息是置頂?shù)?/p>

一、彈窗授權(quán)

  • 授權(quán)當前頁面允許通知

  • 可以通過檢查只讀屬性 Notification.permission 的值來查看你是否已經(jīng)有權(quán)限

  • default: 用戶還未被詢問是否授權(quán),可以通過 Notification.requestPermission() 可以詢問用戶是否允許通知

  • granted: 用戶點擊允許后的狀態(tài)

  • denied: 用戶點擊拒絕后的狀態(tài),通知框不可用

Notification.requestPermission()

二、彈窗使用

  • 可以通過 new Notification($title, $options) 使用通知推送功能

  • title: 一定會被顯示的通知標題

  • options: 可選,一個被允許用來設(shè)置通知的對象。它包含以下屬性:

  • dir: 文字的方向;它的值可以是 auto(自動), ltr(從左到右), or rtl(從右到左)

  • lang: 指定通知中所使用的語言。

  • body: 通知中額外顯示的字符串

  • tag: 賦予通知一個ID,以便在必要的時候?qū)νㄖM行刷新、替換或移除。

  • icon: 一個圖片的URL,將被用于顯示通知的圖標。

new Notification("溫馨提醒", { 
    body: "木芒果", 
    icon: "https://profile-avatar.yssmx.cn/238b721d51d44069986d5004489dcbd3_m0_63823719.jpg!1", 
    data: "https://blog.csdn.net/m0_63823719/" 
});

三、瀏覽器支持檢測

  • 使用通知推送功能前,需要先檢查瀏覽器是否支持

  • 可以通過 "Notification" in window 方法去檢測

  • 在瀏覽器支持的前提下,判斷用戶是否授權(quán)允許通知,如果還未授權(quán),可以彈出授權(quán)框

  • 如果用戶已經(jīng)拒絕過,我們就不去打擾用戶了

function notify() {
    // 先檢查瀏覽器是否支持
    if (!("Notification" in window)) {
        alert("This browser does not support desktop notification");
    }

    // 檢查用戶是否同意接受通知
    else if (Notification.permission === "granted") {
        // If it's okay let's create a notification
        var notification = new Notification("Hi there!");
    }

    // 否則我們需要向用戶獲取權(quán)限
    else if (Notification.permission !== "denied") {
        Notification.requestPermission().then(function (permission) {
            // 如果用戶接受權(quán)限,我們就可以發(fā)起一條消息
            if (permission === "granted") {
                var notification = new Notification("Hi there!");
            }
        });
    }

    // 最后,如果執(zhí)行到這里,說明用戶已經(jīng)拒絕對相關(guān)通知進行授權(quán)
    // 出于尊重,我們不應(yīng)該再打擾他們了
}

四、授權(quán)回調(diào)

  • 該通知有四個回調(diào)方法

  • onshow: 在通知展示的時候調(diào)用

  • onclose: 在通知關(guān)閉的時候調(diào)用

  • onclick: 在通知點擊的時候調(diào)用

  • onerror: 在通知出錯的時候調(diào)用

var notification = new Notification("溫馨提醒", { 
    body: "木芒果", 
    icon: "https://profile-avatar.yssmx.cn/238b721d51d44069986d5004489dcbd3_m0_63823719.jpg!1", 
    data: "https://blog.csdn.net/m0_63823719/" 
});

notification.onshow = function (event) {
    console.log("show : ", event);
};

notification.onclose = function (event) {
    console.log("close : ", event);
};

notification.onclick = function (event) {
    console.log("click : ", event);
    // 當點擊事件觸發(fā),打開指定的url
    window.open(event.target.data)
    notification.close();
};

notification.onerror = function (event) {
    console.log("close : ", event);
};

五、3秒后關(guān)閉彈窗

  • 實現(xiàn)3秒后關(guān)閉彈窗的功能

var notification = new Notification('標題');
notification.onshow = function () {
    setTimeout(function () {
        notification.close();
    }, 3000);
}

六、最佳實踐

notification.js

/**
 * 瀏覽器發(fā)送通知方法
 * Author:木芒果
 * @param {Object} title 通知標題
 * @param {Object} options 可選參數(shù)body(消息體)、icon(通知顯示的圖標路徑)、data(點擊通知后跳轉(zhuǎn)的URL)
 * 示例:
 * createNotify("新的消息", {
 *		body: "你有一個獎品待領(lǐng)取",
 *		icon: "https://www.baidu.com/favicon.ico",
 *		data: "https://www.baidu.com/"
 *	});
 */
function createNotify(title, options) {
	var PERMISSON_GRANTED = "granted";
	var PERMISSON_DENIED = "denied";
	var PERMISSON_DEFAULT = "default";

	// 如果用戶已經(jīng)允許,直接顯示消息,如果不允許則提示用戶授權(quán)
	if (Notification.permission === PERMISSON_GRANTED) {
		notify(title, options);
	} else {
		Notification.requestPermission(function(res) {
			if (res === PERMISSON_GRANTED) {
				notify(title, options);
			}
		});
	}

	// 顯示提示消息
	function notify($title, $options) {
		var notification = new Notification($title, $options);
		// console.log(notification);
		notification.onshow = function(event) {
			// console.log("show : ", event);
		};
		notification.onclose = function(event) {
			// console.log("close : ", event);
		};
		notification.onclick = function(event) {
			// console.log("click : ", event);
			// 當點擊事件觸發(fā),打開指定的url
			window.open(event.target.data)
			notification.close();
		};
	}
}
/* 依次打印
 * show:   Event Object(事件對象),事件的type為"show"
 * click:  Event Object(事件對象),事件的type為"click"。點擊消息后消息被關(guān)閉,跳到close事件。
 * close:  Event Object(事件對象),事件的type為"close"
 */

 index.html

<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<title>Document</title>
	</head>

	<body>
		<script src="notification.js"></script>
		<script>
			createNotify("新的消息", {
				body: "你有一個獎品待領(lǐng)取",
				icon: "https://www.baidu.com/favicon.ico",
				data: "https://www.baidu.com/"
			});
		</script>
	</body>
</html>

七、兼容性

常用的Edge、Google Chrome都支持!

瀏覽器通知,Notification API,桌面消息推送,瀏覽器支持檢測

該圖出自:"Notification" | Can I use... Support tables for HTML5, CSS3, etc

值得注意的是:你必須使用網(wǎng)絡(luò)服務(wù)器進行掛載才能正確顯示該通知,直接打開HTML是無效的,例如使用Nginx、Nodejs、HBuilder X開發(fā)工具、WebStorm開發(fā)工具去運行此程序,如需將此通知功能應(yīng)用到線上的業(yè)務(wù),需使用HTTPS協(xié)議方可使用!文章來源地址http://www.zghlxwxcb.cn/news/detail-517431.html

到了這里,關(guān)于瀏覽器使用Notification桌面通知消息推送的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • windows通過瀏覽器訪問noVNC(基于web的遠程桌面)

    windows通過瀏覽器訪問noVNC(基于web的遠程桌面)

    目錄 一、什么是VNC 和 noVNC? 二、Windows10安裝及配置noVNC 2.0、注釋 2.1、下載UltraVNC 2.2、下載Node.js 2.3、下載安裝git 2.4、創(chuàng)建一個存放文件的文件夾 2.5、安裝ws、optimist、mime-types模塊(執(zhí)行websockify.js文件所需) 2.6、下載noVNC、下載websockify-js 2.7、修改websockify.js文件 ?2.8、查看

    2024年02月08日
    瀏覽(23)
  • 消息通知(Notification)/用戶觸達系統(tǒng)設(shè)計

    消息通知(Notification)/用戶觸達系統(tǒng)設(shè)計

    近年來,通知功能已經(jīng)成為許多應(yīng)用程序中突出的特性。構(gòu)建一個能每天發(fā)送數(shù)百萬通知的可擴展系統(tǒng)絕非易事。這正是為什么我覺得有必要記錄我在這方面踩坑之路。也叫用戶觸達系統(tǒng)。 完成這項任務(wù)要求對通知生態(tài)系統(tǒng)有深刻的理解,否則需求很容易變得模糊和不明確。

    2024年02月04日
    瀏覽(16)
  • 【W(wǎng)inForm】WebView2-個性化瀏覽器-桌面程序開發(fā)詳解

    【W(wǎng)inForm】WebView2-個性化瀏覽器-桌面程序開發(fā)詳解

    這是一個桌面程序上的瀏覽器,是用插件WebView2開發(fā)的瀏覽器桌面程序,功能體驗堪比Edge瀏覽器,相比使用Chrome內(nèi)核插件開發(fā)瀏覽器來說,還是用插件WebView2開發(fā)來得簡單一些,接下來講一講實現(xiàn)過程。 開發(fā)之前,建議先看看微軟的 WebView2 開發(fā)文檔,很有幫助 使用Visual Stu

    2024年02月04日
    瀏覽(20)
  • Win10常見問題【Office等、微信能接受消息但是無法打開瀏覽器】

    Win10常見問題【Office等、微信能接受消息但是無法打開瀏覽器】

    方案1:重啟Windows資源管理器 ctrl + shift + esc打開資源管理器 文件 - 運行新任務(wù) 打開運行窗口后,直接輸入 方案2:刪除注冊表錯誤位置 按Win+R鍵調(diào)出運行,輸入regedit后按回車鍵進入注冊表編輯器 定位到 在{00000000-0000-0000-0000-000000000000}上單擊右鍵,選擇“刪除”; 如果是64位

    2024年01月24日
    瀏覽(86)
  • Selenium調(diào)用使用360瀏覽器,QQ瀏覽器,遨游瀏覽器,獵豹瀏覽器,Chromium

    Selenium調(diào)用使用360瀏覽器,QQ瀏覽器,遨游瀏覽器,獵豹瀏覽器,Chromium

    國產(chǎn)的360安全瀏覽器,360急速瀏覽器,QQ瀏覽器,遨游瀏覽器甚至新版還未上市的Edge瀏覽器都是基于Chrome瀏覽器的開源版本Chronium開發(fā)來的。所以360瀏覽器可以理解為一個定制的Chrome瀏覽器,最新360安全瀏覽器是基于Chromium 63版本的,落后正式的Chrome版本。 我們下載對應(yīng)的2

    2024年02月06日
    瀏覽(79)
  • 使用Selenium需要瀏覽器驅(qū)動與瀏覽器版本統(tǒng)一

    使用Selenium需要瀏覽器驅(qū)動與瀏覽器版本統(tǒng)一

    安裝瀏覽器驅(qū)動 針對不同的瀏覽器,需要安裝不同的驅(qū)動。 這里以安裝 Chrome 驅(qū)動作為演示。 確定瀏覽器版本 進入設(shè)置界面,然后選擇 【關(guān)于 Chrome】 查看自己的版本信息。這里我的版本是114,下載對應(yīng)版本的 Chrome 驅(qū)動即可。 下載驅(qū)動 打開Chrome驅(qū)動。單擊對應(yīng)的版本。(

    2024年02月08日
    瀏覽(27)
  • 什么是無頭瀏覽器?如何使用Golang實現(xiàn)無頭瀏覽器截圖?

    什么是無頭瀏覽器?如何使用Golang實現(xiàn)無頭瀏覽器截圖?

    在Web開發(fā)中,有時需要對網(wǎng)頁進行截圖,以便進行頁面預(yù)覽、測試等操作。 而使用無頭瀏覽器來實現(xiàn)截圖功能,可以避免手動操作的繁瑣和不穩(wěn)定性。 這篇文章將介紹: 使用Golang進行無頭瀏覽器的截圖,輕松實現(xiàn)頁面預(yù)覽、測試和模擬用戶操作。 這篇文章發(fā)完,有朋友在朋

    2024年02月05日
    瀏覽(29)
  • 基于selenium實現(xiàn)多個腳本只打開一次瀏覽器(重復使用瀏覽器)

    本文思路來源【Selenium】控制當前已經(jīng)打開的 chrome瀏覽器窗口(高級版)_是小菜欸的博客-CSDN博客 selenium 自動打開Chrome瀏覽器且重復使用已打開的Chrome實例_飛揚的箭的博客-CSDN博客 但是這一篇文章的方式對于我來說有一個缺點,即每一次都需要新創(chuàng)建一個瀏覽器,或者需要

    2024年02月16日
    瀏覽(21)
  • 7、云服務(wù)器、WSL2(Widnows)Ubuntu22.04、安裝圖形界面/桌面xfce4、vnc連接、設(shè)置中文桌面、配置中文輸入法、安裝瀏覽器和文本編輯器、終端、解決客戶端和服務(wù)器桌面復制黏貼問題

    7、云服務(wù)器、WSL2(Widnows)Ubuntu22.04、安裝圖形界面/桌面xfce4、vnc連接、設(shè)置中文桌面、配置中文輸入法、安裝瀏覽器和文本編輯器、終端、解決客戶端和服務(wù)器桌面復制黏貼問題

    0.1、備注 以下方式適用于云服務(wù)器和WSL2(適用于Linux的windows子系統(tǒng))Ubuntu22.02 0.2、說明 在 Ubuntu 服務(wù)器上安裝圖形界面可以讓你通過圖形化的方式管理和操作系統(tǒng)。 Ubuntu 提供了多種圖形界面選擇,以下是一些常見的圖形界面: GNOME:GNOME 是 Ubuntu 默認的圖形界面環(huán)境,它提

    2024年02月20日
    瀏覽(27)
  • QT 瀏覽器組件使用

    QT 瀏覽器組件使用

    ?1. Qt4中使用webkit模塊; ? 2. Qt5 ~Qt5.5使用webkitwidgets模塊,使用WebKit作為后端; ? 3. Qt5.6以上版本使用webenginewidgets模塊,使用Chromium作為后端。QT5.6之后開始支持 這里一定要指定msvc2017(或者msvc2019都可以)?64編譯器,如果指定minGW依然會報錯,因為MinGW不支持QWebEngine,如果QT中msv

    2024年01月22日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包