vue实现浏览器桌面通知
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                vue实现浏览器桌面通知
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                瀏覽器桌面通知:當瀏覽器最小化,或者切換到其他標簽頁不在當前系統頁面,或在其他頁面時依然可以顯示通知
*使用前注意:生產環境地址必須為https協議,開發環境可以用localhost IP地址,且必須允許顯示通知才能顯示桌面通知
 *存在兼容性問題,不同系統不同瀏覽器甚至不同版本瀏覽器效果略有不同
方案一: H5 JavaScript Web Notification API
Notification官網
 目前Notification除了IE瀏覽器不支持外, 其他瀏覽器都已支持桌面通知,移動端瀏覽器基本都未支持
方案二: push.js 工具 (基于notification)
push官網
一、引入
1.script引入方式
<script src="https://cdnjs.cloudflare.com/ajax/libs/push.js/0.0.11/push.min.js"></script>2.npm安裝引入
npm install push.js --save引入
import Push from 'push.js' // 如果全局使用在main.js引入后,進行掛載: Vue.prototype.Push = Push二、主要代碼
// 手動獲取用戶桌面通知權限if (this.Push.Permission.GRANTED) { // 判斷當前是否有權限,沒有則手動獲取this.Push.Permission.request()}// 監聽瀏覽器 當前系統是否在當前頁document.addEventListener('visibilitychange', () => {if (!document.hidden) { // 處于當前頁面// 關閉之前的消息通知,清空this.Push.clear()this.notificationArr = []}}) // 發送 瀏覽器 桌面通知showDeskNotify (data) {if (!this.Push.Permission.has()) {alert('抱歉,此瀏覽器不支持桌面通知!')return}// 關閉之前的消息通知this.Push.clear()let title = '消息通知(' + (this.auditMessageArr.length + 1) + '條未讀)'this.Push.create(title, {tag: data.data.wfFormId,body: '類型:' + data.data.auditTitle + '\n時間:' + data.data.applyTime,requireInteraction: true,icon: require('../../../assets/img/XX.png'),onClick: () => {window.focus()// this.close() // 單個關閉this.Push.clear() // 全部關閉// window.location.href = data.originUrl}})},方案三: iNotify.js JS
JS 實現瀏覽器的 title 閃爍、滾動、聲音提示、chrome、Firefox、Safari等系統通知
1.npm安裝引入
npm install title-notify --save2.主要代碼
var iNotify = new iNotify().init() //推薦下面寫法 var iNotify = new iNotify({message: '有消息了。',//標題effect: 'flash', // flash | scroll 閃爍還是滾動openurl:"http://www.bing.com", // 點擊彈窗打開連接地址onclick:function(){ //點擊彈出的窗之行事件console.log("---")},//可選播放聲音audio:{//可以使用數組傳多種格式的聲音文件file: ['msg.mp4','msg.mp3','msg.wav']//下面也是可以的哦//file: 'msg.mp4'},//標題閃爍,或者滾動速度interval: 1000,//可選,默認綠底白字的 FaviconupdateFavicon:{// favicon 字體顏色textColor: "#fff",//背景顏色,設置背景顏色透明,將值設置為“transparent”backgroundColor: "#2F9A00"},//可選chrome瀏覽器通知,默認不填寫就是下面的內容notification:{title:"通知!",//設置標題icon:"",//設置圖標 icon 默認為 Faviconbody:'您來了一條新消息'//設置消息內容} })3.其他
判斷瀏覽器彈框通知是否被阻止。
iNotify.isPermission()播放聲音
iNotify.player() // 自動播放iNotify.loopPlay()停止播放
iNotify.stopPlay()設置播放聲音URL
1 iNotify.setURL('msg.mp3')// 設置一個2 iNotify.setURL(['msg.mp3','msg.ogg','msg.mp4']) // 設置多個添加計數器
iNotify.addTimer()清除計數器
iNotify.clearTimer()總結
以上是生活随笔為你收集整理的vue实现浏览器桌面通知的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: Linux操作系统管理-Resource
- 下一篇: 谜一样的科学家——阿兰图灵
