自從在 Chrome 中推出通知功能及推送訊息,我們學到了不少知識。一 給予電腦課程裝置的意見回饋, 會在使用者的螢幕上停留並持續顯示,直到使用者主動關閉為止。
開啟網頁時,可以建立簡單的 JavaScript 計時器,自動 關閉通知。但我們現在與 Service Worker 息息相關:網頁應用程式可 超過窗戶的生命週期,而服務工作人員會盡快進入睡眠狀態 以節省資源也就是說,我們需要另一種方式為使用者打造良好的體驗。
「通知規格」最近已更新,讓開發人員能夠 指出系統不應自動關閉通知。
通知有一個相關聯的需要互動偏好設定標記, 未設定。如果設定這項政策,表示裝置螢幕的尺寸夠大。 保持可用狀態,直到使用者啟用或關閉通知為止。
這可能看起來有點奇怪,不過除非另有說明 不久後就會停止顯示
Chrome 47 (2015 年 10 月的 Beta 版) 現在支援 requireInteraction
選項。除非明確表示
將「且」設為 true
,系統將在以下時間過後關閉電腦上的所有通知
約 20 秒。但有趣的部分是
近期才將通知中心從所有電腦平台 (但 ChromeOS) 中移除,這代表
最小化的通知視為關閉,而且無法在呼叫 getNotifications
中存取
實作在 Service Worker 中
在 Chrome for Android 中,由於通知匣區會最小化通知,因此
系統會忽略 requireInteraction
選項。
navigator.serviceWorker.register('sw.js');
function showNotifications() {
Notification.requestPermission(function(result) {
if (result === 'granted') {
navigator.serviceWorker.ready.then(function(registration) {
registration.showNotification('requireInteraction: true', {
body: 'Requires interaction',
icon: '../images/touch/chrome-touch-icon-192x192.png',
requireInteraction: true,
tag: 'require-interaction'
});
registration.showNotification('requireInteraction: false', {
body: 'Does not require interaction',
icon: '../images/touch/chrome-touch-icon-192x192.png',
requireInteraction: false,
tag: 'no-require-interaction'
});
});
}
});
}
立即試用。