| <!doctype html> |
| <html> |
| <head> |
| <title>Web Notifications Example</title> |
| <script> |
| var notificationsCreated = 0 |
| |
| function getPermission() { return document.Notification } |
| function resetPermission(permission = 'default') { |
| document.Notification = permission |
| document.getElementById('state').value = getPermission() |
| } |
| |
| function createNotification() { |
| let title = 'Notification #' + ++notificationsCreated |
| let options = { body: 'Visit doc.qt.io for more info!', icon: 'icon.png', } |
| |
| let notification = new Notification(title, options) |
| document.notification = notification |
| |
| notification.onerror = function(error) { |
| document.getElementById('act').value += ' with error' |
| document.notification = null |
| } |
| notification.onshow = function() { |
| document.getElementById('act').value += ', shown' |
| document.getElementById('close').style.display = 'inline' |
| } |
| notification.onclick = function() { |
| document.getElementById('act').value += ', clicked' |
| } |
| notification.onclose = function() { |
| if (document.notification && notification == document.notification) { |
| document.getElementById('act').value += ' and closed' |
| document.getElementById('close').style.display = 'none' |
| document.notification = null |
| } |
| } |
| |
| console.log('...notification created [Title: ' + title + ']') |
| document.getElementById('act').value = 'Notification was created' |
| } |
| |
| function onMakeNotification() { |
| if (getPermission() == 'granted') { |
| createNotification() |
| } else if (getPermission() == 'denied') { |
| setTimeout(function() { |
| if (window.confirm('Notifications are disabled!\n' + |
| 'Permission needs to be granted by user. Reset?')) |
| resetPermission() |
| }, 1) |
| } else { |
| Notification.requestPermission().then(function (permission) { |
| console.info('notifications request: ' + permission) |
| resetPermission(permission) |
| if (permission == 'granted') |
| createNotification() |
| }) |
| } |
| } |
| |
| function closeNotification() { if (document.notification) document.notification.close() } |
| |
| document.addEventListener('DOMContentLoaded', function() { resetPermission(Notification.permission) }) |
| </script> |
| </head> |
| <body style='text-align:center;'> |
| <h3>Click the button to send a notification</h3> |
| |
| <button onclick='onMakeNotification()'>Notify!</button> |
| |
| <p> |
| <output id='act'></output> |
| <button id='close' style='display: none;' onclick='closeNotification()'>Close</button> |
| </p><br> |
| |
| <p> |
| <label for='state'>Permission:</label> |
| <output id='state'></output> |
| <button onclick='resetPermission()'>Reset</button> |
| </p><br> |
| |
| <h4>More info can be found on:</h4> |
| <ul style='list-style-type: none;'> |
| <li>W3 <a href='https://www.w3.org/TR/notifications'>Web Notifications</a> standard</li> |
| <li>Documentation for <a href='https://doc.qt.io'>Qt WebEngine</a> module</li> |
| </ul> |
| </body> |
| </html> |