Ich versuche, einen einfachen Desktop-Benachrichtigungscode aus einem Inhaltsskript anzuzeigen, aber es scheint nicht zu funktionieren. Ich habe die Berechtigungen in der Datei maifest.json hinzugefügt. Gibt es eine Beschränkung, sie aus dem Inhaltsskript zu zeigen?Desktop-Benachrichtigungen von Inhaltsskripten
Antwort
Ja, Benachrichtigungen verwenden Chrome-spezifische API, und das Inhaltsskript ist nur für allgemeines JavaScript usw. gültig. Die background page ist, wo alle chromspezifischen APIs ausgeführt werden können ... Zuerst müssen Sie Ihren Hintergrund registrieren Seite in der manifest.json Datei - wie folgt aus:
"background_page": "background.html",
auch in der Manifest-Datei, Lassen Sie die erforderlichen Berechtigungen:
"permissions": [ "notifications" ],
Dann wird Ihr Skript im Hintergrund Seite sollte wie folgt aussehen:
<script>
setTimeout("setNotification();",1);
function setNotification(){
var n
if (window.webkitNotifications.checkPermission() != 0){
setNotification();
return false;
}
n = window.webkitNotifications.createHTMLNotification('http://www.your-notification-address.com');
n.show();}
</script>
Sie können Benachrichtigungen nicht direkt über ein Inhaltsskript anzeigen. Aber Sie können zeigen sie durch die Hintergrundseite.
Sie manifest.js sollte wie folgt aussehen:
{
"name": "Notify This",
"version": "0.1",
"permissions": [
"notifications"
],
"background_page": "background.html",
"content_scripts": [
{
"matches": ["http://www.example.com/*"],
"js": ["contentscript.js"]
}
]
}
Dann wird die Verwendung chrome.extension.sendRequest():
// in your contentscript.js
chrome.extension.sendRequest({msg: "Sup?"}, function(response) { // optional callback - gets response
console.log(response.returnMsg);
});
Und am empfangenden Ende sollten Sie haben einen onRequest Zuhörer:
// in your background.html
chrome.extension.onRequest.addListener(
function(request, sender, sendResponse) {
// Create a simple text notification:
var notify = webkitNotifications.createNotification(
'48.png', // icon url - can be relative
'Hello!', // notification title
request.msg // notification body text
);
notify.show();
setTimeout(function(){ notify.cancel(); },5000);
sendResponse({returnMsg: "All good!"}); // optional response
});
Danke, ich hatte endlich so etwas gearbeitet. Sie können auch nur Desktop-Benachrichtigungen von Inhaltsskripten zulassen. Die Leute ärgern sich über Apple wegen solcher geschlossener APIs, aber es ist nicht wie bei Google, wo das Web offener sein soll ... –
Dies ist die Antwort, die ich mir erhoffte, basierend auf dem Titel der Frage. Vielen Dank! –
- 1. Konfigurierbare Tastenkombination ohne Verwendung von Inhaltsskripten
- 2. Chrome-Erweiterung: ein Objekt zwischen Inhaltsskripten und Hintergrundskript teilen
- 3. Chrome Extension: Wie Inhalts Skript nach der Injektion zu entfernen?
- 4. Können Chrome-Inhaltsscripts auf window.opener zugreifen?
- 5. HTML5 Desktop Benachrichtigungen (idealerweise mit Angular)
- 6. Lesen von Daten von außerhalb erstellt von
- 7. Entfernen von Padding von Iframe von Seite
- 8. Herunterladen von Datei von Umleiten von URLs
- 9. von. import * von Modul
- 10. Abruf-API sendet keine Sitzungscookies, wenn sie in einer Chrome-Erweiterung verwendet wird
- 11. Senden von XML von SUDS
- 12. Abrufen von JSONObject von String
- 13. Abrufen von NSManagedObjectContext von NSManagedObject
- 14. Wiederholen von IDs von Elementkindern
- 15. Senden von Broadcasts von asynctasks
- 16. Manipulation von ByteBuffer von JNI
- 17. Geben von Daten von Javascript
- 18. Empfangen von SMS von SIM
- 19. Kombinationsfunktion von Arrays von Arrays
- 20. Parsen von Variablen von Konsolenfehler
- 21. Abrufen von UITableViewCell von UITapGestureRecognizer
- 22. Extrahieren von optionValue von postmeta
- 23. Empfangen von Kreditkarteninformationen von Card.Io
- 24. Aufruf von Python von C#
- 25. Ausführen von Blöcken von NSArray?
- 26. Angeben von Abhängigkeiten von Makefile
- 27. Anfordern von Parametern von Jsp
- 28. Erstellen von NSUmage von NSColor
- 29. Löschen von Vektor von Zeigern
- 30. Entfernen von Elementen von ID
groß .. Danke David :) – sharath
Wenn du die Erlaubnis legst Für Benachrichtigungen in Ihrem Erweiterungsmanifest müssen Sie nicht nach Berechtigungen suchen. http://code.google.com/chrome/extensions/notifications.html – npdoty
Erklärt nicht wirklich, wie Sie eine Desktopbenachrichtigung anzeigen können, die von einem Inhaltsskript stammt. –