2013-05-27 2 views
7

La mia estensione di Chrome fa un uso pesante di webkitNotifications. Voglio passare a new rich notifications (chrome.notifications) ma quelli non sono ancora disponibili su tutte le piattaforme e al momento della scrittura solo nel canale beta e su. Se le notifiche avanzate non sono disponibili, è necessario utilizzare webkitNotifications come fallback. Così sto cercando la soluzione migliore per attuare questo:Rileva se sono disponibili notifiche avanzate in Chrome

if(richNotificationsAvailable()) 
    chrome.notifications.create(...); 
else 
    webkitNotifications.createNotification(...).show(); 

ho provato a controllare chrome.notifications.create per indefinita ma è ancora definito per Chrome 27 con le ricche notifiche disabilitati in chrome://flags.

risposta

5

Per rilevare se avete rich notifications, il modo più affidabile è attualmente al banco di prova per l'esistenza di webkitNotifications.createHTMLNotification - se questa funzione non è definito, quindi rich notifications sono stati switched on.

+1

Non avrebbe più senso per controllare l'inverso di questo? Per verificare che siano stati attivati, non che un'altra funzione non sia disponibile? –

+0

Grazie, controllando 'webkitNotifications.createHTMLNotification' per i lavori' indefiniti'! L'ho confermato con Chromium 29 (dev) su Linux, dove le Rich Notifiche non sono ancora disponibili: 'createHTMLNotification' è ancora definito. Su Windows non è definito a partire da Chrome 28 (beta). – user2425107

0

Proprio di questo codice:

if (webkitNotifications && webkitNotifications.createHTMLNotification) { 
    //HTML notifications 
} else if (chrome.notifications && chrome.notifications.create) { 
    //Rich notifications 
} 
+0

Dubito che questo sia davvero necessario più però. Le notifiche avanzate sono abilitate su tutte le piattaforme da un po 'di tempo. – Xan