Ergebnis 1 bis 10 von 10
  1. #1
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.582

    Notification() in Chrome geändert

    Guten Morgen!

    Irgendwann kürzlich muss im Chrome etwas bezüglich der Notification() API geändert worden sein.

    Folgender Code: Noti Tests
    Läuft im Firefox wunderbar.

    Aber Chrome sagt:
    [Deprecation]Uncaught TypeError: Cannot read property 'checkPermission' of undefined...
    Wie muss das für den Chrom aussehen? Ich finde keine vollständigen Beispiele im Netz. Auf den Seiten https://developers.google.com/web/up...cation-actions und https://developers.google.com/web/up...-notifications finde ich nur Code, der irgendwelche Fehler wirft, wenn ich ihn teste oder der garnichts Sichtbares macht, nicht einmal in der Console.

    Danke und schonmal guten Rutsch!
    Das deutsche Javascript Forum http://forum.jswelt.de http://forum.jswelt.de/images/logoJsWeltForumV4_32x22.png
    Sorry wenn ich manchmal ohne Hallo und nur klein schreibe! Dann bin ich nicht unfreundlich sondern mit nervigem kleinem Touch Tablet zugange

  2. #2
    Avatar von xorg1990
    xorg1990 ist offline König
    registriert
    19-12-2013
    Beiträge
    831

    AW: Notification() in Chrome geändert

    Ja, die webkitNotifications ist in Chrome nicht mehr gültig.

    Du musst auf die Standard Implementierung zurückgreifen.
    https://developer.mozilla.org/en-US/...ifications_API

    Beachte:
    In Chrome 62 and newer you cannot request notification api at all unless the site is https:// secured. (see issue 779612) If you do have https on the site you should be able to use notifications and background push notifications.
    Dieser https rotz ist mir echt ein dorn im Auge

    bei mir geht:
    Code:
     window.Notification.requestPermission(function() {
                alert('Permissions state: ' + window.Notification.permission);
            });
    oder
    Code:
     if(window.Notification.permission !== 'granted') {
                alert('Permissions hasnt been granted');
            }

  3. #3
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.582

    AW: Notification() in Chrome geändert

    Frohes Neues xorg und allen Anderen!

    Ich habe hier mit dem neuesten Opera eine Endlosschleife mit der .then() Syntax. Habe es deshalb erst einmal umgestellt auf Standard Syntax gemäß https://developer.mozilla.org/de/doc...I/notification :
    HTML-Code:
    Notification.requestPermission(function(resultat) {
    	if (resultat === 'granted') {
    		kalender_alarm_setzen(getdata);
    	}
    });
    Bin aber noch nicht fertig. Denn jetzt ist es zwar keine Endlosschleife mehr aber Opera will genauso wie Chrome eine https Verbindung. Muss jetzt erstmal sehen, wie ich das bekomme. Werde wieder berichten.

    Firefox ist zumindest schonmal zufrieden und der Edge ab 1709 Update scheint es auch zu fressen, das muss ich noch genauer testen, weil ich das 1709 auf Produktivsystemen noch scheue. Mit https://www.browserling.com/ geht das geil, ist aber nur 3 Minuten täglich kostenfrei
    Das deutsche Javascript Forum http://forum.jswelt.de http://forum.jswelt.de/images/logoJsWeltForumV4_32x22.png
    Sorry wenn ich manchmal ohne Hallo und nur klein schreibe! Dann bin ich nicht unfreundlich sondern mit nervigem kleinem Touch Tablet zugange

  4. #4
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.582

    Question AW: Notification() in Chrome geändert

    Bin hier ein kleines Stückchen weiter dank Sonntag

    Problem: der Browser wartet mit meiner Syntax nicht auf die Benutzerentscheidung ob Benachrichtigungen zugelassen oder verboten sind.
    Im Testcode unter MDN Notification ist das OK aber worin genau liegt der Unterschied, dass es mit meinem Code nicht geht?

    Mein Code online: https://mikdoe.lima-city.de/test_noti.html

    oder hier:
    HTML-Code:
    <!DOCTYPE html>
    <html>
    	<head>
    		<title>Test</title>
    		<meta charset="utf-8">
    <style type="text/css">
    .tstf_wnoti_gruen_rot{
    	padding-left:				10px;
    	padding-right:				10px;
    	width:						12px;
    	height:						12px;
    }
    .tstf_wnoti_hinweis{
    	background-color:			yellow;
    	padding:					2px;
    	line-height:				20px;
    }
    </style>
    	</head>
    	<body>
    		<script>
    "use strict";
    var hakengruen = '<img src="http://mikdoe.lima-city.de/images/haken_gruen_klein.png" class="tstf_wnoti_gruen_rot">';
    var kreuzrot = '<img src="http://mikdoe.lima-city.de/images/cross_klein.png" class="tstf_wnoti_gruen_rot">';
    
    function webnoti(in_out) {
    	if (!in_out.get) { in_out.get = {}; }
    
    	// das jeweilige Kommando
    	switch(in_out.set.act) {
    
    		// Aktuellen Status der Berechtigung abfragen
    		case 'status':
    			in_out.get.result = Notification.permission;
    			break;
    
    		// Browser fordert die Berechtigung beim Benutzer an
    		case 'get permission':
    			Notification.requestPermission(function(perm) {
    				in_out.get.ergebnis = perm;
    			});
    			break;
    
    		// Default sagt nur 'Hallo'
    		default:
    			in_out.get.text = 'Hallo';
    	}
    }
    		</script>
    
    
    <div>
    	<b>Teil 4 - Browser fordert die Berechtigung beim Benutzer an</b><br>
    	<div id="testf_neu_wn_noti_requ_div"></div>
    	<script>
    		(function() {
    			var set_get = {
    				set			: {
    					act			: 'status'
    				}
    			};
    			webnoti(set_get);
    
    			if (set_get.get.result === 'granted') {
    				document.getElementById('testf_neu_wn_noti_requ_div').innerHTML = '<span'
    					+' class="tstf_wnoti_hinweis">Für diesen Test bitte im Browser die bestehende Berechtigung'
    					+' löschen (durch Klick links oben auf das Schloss)</span>'
    				;
    			}
    			else {
    				if (set_get.get.result === 'denied') {
    					document.getElementById('testf_neu_wn_noti_requ_div').innerHTML = '<span'
    						+' class="tstf_wnoti_hinweis">Für diesen Test bitte im Browser das generelle Verbot für'
    						+' Benachrichtigungen entfernen (durch Klick links oben auf das Schloss)</span>'
    					;
    				}
    				else {
    					set_get = {
    						set			: {
    							act			: 'get permission',
    						}
    					};
    					webnoti(set_get);
    
    					document.getElementById('testf_neu_wn_noti_requ_div').innerHTML = 'Browser liefert: <b>'
    						+set_get.get.ergebnis
    						+'</b>'
    						+(set_get.get.result === 'granted' ? hakengruen : kreuzrot)
    					;
    				}
    			}
    		})();
    	</script>
    	<hr>
    </div>
    	</body>
    </html>
    Danke und euch einen schönen Sonntag!
    Das deutsche Javascript Forum http://forum.jswelt.de http://forum.jswelt.de/images/logoJsWeltForumV4_32x22.png
    Sorry wenn ich manchmal ohne Hallo und nur klein schreibe! Dann bin ich nicht unfreundlich sondern mit nervigem kleinem Touch Tablet zugange

  5. #5
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.630

    AW: Notification() in Chrome geändert

    Zitat Zitat von mikdoe Beitrag anzeigen
    aber worin genau liegt der Unterschied, dass es mit meinem Code nicht geht?
    du führst deinen code nicht im callback aus.
    du hast im prinzip das
    Code:
    <!DOCTYPE html>
    <html>
      <head>
        <title>Test</title>
      </head>
      <body>
        <script>
          function xxx()
          {
            setTimeout(function()
            {
              console.log("callback");
            }, 0);
          }
          xxx();
          console.log("main");
      </script>
      </body>
    </html>

  6. #6
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.582

    AW: Notification() in Chrome geändert

    Und wie sag ich der webnoti() dass sie mit der Rückkehr erst auf Notification.requestPermission() warten muss?
    Das deutsche Javascript Forum http://forum.jswelt.de http://forum.jswelt.de/images/logoJsWeltForumV4_32x22.png
    Sorry wenn ich manchmal ohne Hallo und nur klein schreibe! Dann bin ich nicht unfreundlich sondern mit nervigem kleinem Touch Tablet zugange

  7. #7
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.630

    AW: Notification() in Chrome geändert

    Zitat Zitat von mikdoe Beitrag anzeigen
    Und wie sag ich der webnoti() dass sie mit der Rückkehr erst auf Notification.requestPermission() warten muss?
    indem du die notification in dem callback (oder einer aus dem callback gerufenen funktion) absetzt, oder das promise-objekt zurücklieferst und die notification in dessen then-callback absetzt.

  8. #8
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.582

    AW: Notification() in Chrome geändert

    Zitat Zitat von tsseh Beitrag anzeigen
    indem du die notification in dem callback (oder einer aus dem callback gerufenen funktion) absetzt
    Wo ist dieser Callback? Sorry ich komme im Moment nicht drauf.
    Das deutsche Javascript Forum http://forum.jswelt.de http://forum.jswelt.de/images/logoJsWeltForumV4_32x22.png
    Sorry wenn ich manchmal ohne Hallo und nur klein schreibe! Dann bin ich nicht unfreundlich sondern mit nervigem kleinem Touch Tablet zugange

  9. #9
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.630

    AW: Notification() in Chrome geändert

    Zitat Zitat von mikdoe Beitrag anzeigen
    Wo ist dieser Callback? Sorry ich komme im Moment nicht drauf.
    https://developer.mozilla.org/de/doc...uestPermission

    Code:
    // Browser fordert die Berechtigung beim Benutzer an
    		case 'get permission':
    			Notification.requestPermission(function(perm) {
                                    document.getElementById('testf_neu_wn_noti_requ_div').innerHTML = 'Browser liefert: <b>'
    						+perm
    						+'</b>'
    						+(perm === 'granted' ? hakengruen : kreuzrot)
    			});
    			break;

  10. #10
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.582

    AW: Notification() in Chrome geändert

    Vielen Dank hesst! Jetzt hab' ich's.

    Lösung: https://mikdoe.lima-city.de/test_noti_loesung.html

    HTML-Code:
    <!DOCTYPE html>
    <html>
    	<head>
    		<title>Test</title>
    		<meta charset="utf-8">
    <style type="text/css">
    .tstf_wnoti_gruen_rot{
    	padding-left:				10px;
    	padding-right:				10px;
    	width:						12px;
    	height:						12px;
    }
    .tstf_wnoti_hinweis{
    	background-color:			yellow;
    	padding:					2px;
    	line-height:				20px;
    }
    </style>
    	</head>
    	<body>
    		<script>
    "use strict";
    var hakengruen = '<img src="http://mikdoe.lima-city.de/images/haken_gruen_klein.png" class="tstf_wnoti_gruen_rot">';
    var kreuzrot = '<img src="http://mikdoe.lima-city.de/images/cross_klein.png" class="tstf_wnoti_gruen_rot">';
    
    function webnoti(in_out) {
    	if (!in_out.get) { in_out.get = {}; }
    
    	// das jeweilige Kommando
    	switch(in_out.set.act) {
    
    		// Aktuellen Status der Berechtigung abfragen
    		case 'status':
    			in_out.get.result = Notification.permission;
    			break;
    
    		// Browser fordert die Berechtigung beim Benutzer an
    		case 'get permission':
    			Notification.requestPermission(function(perm) {
    				if (in_out.set.callback) { in_out.set.callback(perm); }
    			});
    			break;
    
    		// Default sagt nur 'Hallo'
    		default:
    			in_out.get.text = 'Hallo';
    	}
    }
    		</script>
    
    
    <div>
    	<b>Teil 4 - Browser fordert die Berechtigung beim Benutzer an</b><br>
    	<div id="testf_neu_wn_noti_requ_div"></div>
    	<script>
    		(function() {
    			var set_get = {
    				set			: {
    					act			: 'status'
    				}
    			};
    			webnoti(set_get);
    
    			if (set_get.get.result === 'granted') {
    				document.getElementById('testf_neu_wn_noti_requ_div').innerHTML = '<span'
    					+' class="tstf_wnoti_hinweis">Für diesen Test bitte im Browser die bestehende Berechtigung'
    					+' löschen (durch Klick links oben auf das Schloss)</span>'
    				;
    			}
    			else {
    				if (set_get.get.result === 'denied') {
    					document.getElementById('testf_neu_wn_noti_requ_div').innerHTML = '<span'
    						+' class="tstf_wnoti_hinweis">Für diesen Test bitte im Browser das generelle Verbot für'
    						+' Benachrichtigungen entfernen (durch Klick links oben auf das Schloss)</span>'
    					;
    				}
    				else {
    					set_get = {
    						set			: {
    							act			: 'get permission',
    							callback	: function(result) {
    								document.getElementById('testf_neu_wn_noti_requ_div').innerHTML = 'Browser'
    									+' liefert: <b>'
    									+result
    									+'</b>'
    									+(result === 'granted' ? hakengruen : kreuzrot)
    								;
    							}
    						}
    					};
    					webnoti(set_get);
    				}
    			}
    		})();
    	</script>
    	<hr>
    </div>
    	</body>
    </html>
    Das deutsche Javascript Forum http://forum.jswelt.de http://forum.jswelt.de/images/logoJsWeltForumV4_32x22.png
    Sorry wenn ich manchmal ohne Hallo und nur klein schreibe! Dann bin ich nicht unfreundlich sondern mit nervigem kleinem Touch Tablet zugange

Ähnliche Themen

  1. Antworten: 6
    Letzter Beitrag: 16-12-2015, 12:52
  2. CGI notification from JavaScript
    Von szigetvari im Forum JavaScript
    Antworten: 13
    Letzter Beitrag: 11-01-2013, 09:34
  3. eingegebene Farbwerte werden geändert
    Von bine im Forum Grafik
    Antworten: 1
    Letzter Beitrag: 29-01-2007, 22:25
  4. email adresse geändert...
    Von Domme im Forum Smalltalk
    Antworten: 9
    Letzter Beitrag: 09-12-2002, 16:52

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •