blob: ebb73b57373187d828e4b2d9dbc18292aeb62936 [file] [log] [blame]
<!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>