La fonction WebKit notifications requestPermission ne fonctionne pas

J'essaie d'implémenter le support des notifications de bureau natives de WebKit sur mon site. Lorsque j'essaie de demander la permission de l'utilisateur d'utiliser les notifications, absolument rien ne se passe. Par exemple, le code HTML suivant N'invite pas Chrome à me demander la permission:

<html lang="en">
<head></head>

<body>
    <h1>Testing</h1>
    <script>
        window.webkitNotifications.requestPermission();
    </script>
</body>
</html>

Je sais qu'il n'y a pas de problème avec ma version de Chrome car d'autres sites (par exemple http://www.html5rocks.com/tutorials/notifications/quick / ) fonctionne parfaitement bien: je peux voir à la fois l'invite et le notifications ultérieures.

26
demandé sur rds 2011-02-18 13:22:47

2 réponses

Vérifiez la spécification dans Chromium api docs . Vous pouvez l'appeler uniquement comme un retour à l'utilisateur geste / action-clic de souris, etc.

RequestPermission demande que le agent utilisateur demandez l'autorisation à l'utilisateur pour afficher les notifications des scripts. cette méthode ne doit être appelée lors de la manipulation d'un geste de l'Utilisateur ; dans d'autres circonstances, il n'aura pas d' effet. Cette méthode est asynchrone. La fonction fournie dans le rappel être invoqué lorsque le l'utilisateur a répondu à la demande d'autorisation. Si l' le niveau d'autorisation actuel est PERMISSION_DENIED, l'agent utilisateur peut prendre aucune mesure en réponse à requestPermission.

Mise à jour 2014-10-01: dans Chrome 37, l'exigence de geste de l'Utilisateur a été supprimée. Il devrait maintenant être possible de demander l'autorisation d'Afficher des notifications à tout moment. Si vous souhaitez également cibler les anciennes versions de Chrome (par exemple. dans un environnement d'entreprise), vous devrez probablement continuez à compter sur les événements gestuels de l'utilisateur.

51
répondu Tom Tu 2014-10-01 16:57:06

Pour vérifier la Notification sur le fichier local (file://) l'autorisation apparaîtra mais la notification ne fonctionnera pas sur chrome.

Comme un travail autour de vous pouvez changer

Paramètre de contenu > Notification > Autoriser tous les sites web à afficher une notification

Code le plus court pour afficher la notification

var notification = new Notification("YOUR MESSAGE");
2
répondu Zaheer 2014-11-18 04:04:51