2013-05-27 9 views
7

Meine Chrome-Erweiterung verwendet WebkitNotifications. Ich möchte auf die new rich notifications (chrome.notifications) wechseln, aber diese sind noch nicht auf allen Plattformen verfügbar und zum Zeitpunkt des Schreibens nur im Beta-Kanal und höher. Wenn die Rich-Benachrichtigungen nicht verfügbar sind, sollten WebkitNotifications als Ersatz verwendet werden. Ich suche also für die beste Lösung, um dies zu implementieren:Erkennen, ob Rich Notifications in Chrome verfügbar sind

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

Ich versuchte chrome.notifications.create für nicht definierte Kontrolle, aber es ist auch für Chrome 27 mit den reichen Benachrichtigungen deaktiviert in chrome://flags definiert.

Antwort

5

Um festzustellen, ob Sie rich notifications, der zuverlässigste Weg haben, ist derzeit Test für die Existenz von webkitNotifications.createHTMLNotification - wenn diese Funktion nicht definiert ist, rich notifications haben switched on gewesen.

+1

Wäre es nicht sinnvoll, die Umkehrung dieses zu überprüfen? Um zu überprüfen, ob sie aktiviert wurden, ist nicht eine andere Funktion nicht verfügbar? –

+0

Vielen Dank, überprüfen 'webkitNotifications.createHTMLNotification' für' undefined' funktioniert! Ich habe es mit Chromium 29 (dev) unter Linux bestätigt, wo die Rich Notifications noch nicht verfügbar sind: 'createHTMLNotification' ist noch definiert. Unter Windows ist es ab Chrome 28 (Beta) undefiniert. – user2425107

0

einfach diesen Code verwenden:

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

Ich bezweifle, dass das wirklich mehr benötigt wird. Rich-Benachrichtigungen sind seit einiger Zeit auf allen Plattformen aktiviert. – Xan

Verwandte Themen