Table of Contents
Preface
User permissions
Home Web Front-end HTML Tutorial HTML5 desktop notification Notification API usage

HTML5 desktop notification Notification API usage

Oct 23, 2017 am 09:47 AM
api html5 notification

Preface

Notification API is a new desktop notification API in HTML5, which is used to display notification information to users. This notification is separated from the browser. Even if the user does not stay on the current tab page or even minimizes the browser, the notification information will still be displayed on top.

User permissions

If you want to display notification messages to users, you need to obtain user permissions, and the same domain name only needs to obtain permission once. Notification can only work with the permissions allowed by the user to prevent advertisements from certain websites from abusing Notification or otherwise affecting users. So how do you know whether the user is allowed or not?

Notification.permission This attribute is used to indicate the authorization status of the current notification display. Possible values ​​include:

  • ##default: The user's choice is not known, default.

  • granted: Allowed by the user.

  • denied: Denied by the user.


if(Notification.permission === 'granted'){
    console.log('用户允许通知');}else if(Notification.permission === 'denied'){
    console.log('用户拒绝通知');}else{
    console.log('用户还没选择,去向用户申请权限吧');}
Copy after login

Request permission

When the user has not selected yet, we need to request permission from the user. The Notification object provides the requestPermission() method to request the user's permission from the current source to display notifications.

The previous callback-based syntax has been deprecated (of course it can still be used in current browsers). The latest specification has updated this method to a promise-based syntax:


Notification.requestPermission().then(function(permission) {
    if(permission === 'granted'){
        console.log('用户允许通知');
    }else if(permission === 'denied'){
        console.log('用户拒绝通知');
    }});
Copy after login

Push notification

After obtaining user authorization, you can push notifications.


var notification = new Notification(title, options)
Copy after login

The parameters are as follows:

  • title: The title of the notification

  • options: Setting options for notifications (optional).

    • body: The content of the notification.

    • tag: An identification tag representing a notification. Only the same notification window will be opened with the same tag.

    • icon: The URL of the icon to be displayed in the notification.

    • HTML5 desktop notification Notification API usage: The URL of the HTML5 desktop notification Notification API usage to display in the notification.

    • data: The data of the task type you want to associate with the notification.

    • requireInteraction: The notification remains valid and does not close automatically. The default is false.

There are some other parameters, but there is no need to mention them here because they are unused or of no use.


var n = new Notification('状态更新提醒',{
    body: '你的朋友圈有3条新状态,快去查看吧',
    tag: 'linxin',
    icon: 'http://blog.gdfengshuo.com/HTML5 desktop notification Notification API usages/avatar.jpg',
    requireInteraction: true})
Copy after login

The rendering of the notification message is as follows:

HTML5 desktop notification Notification API usage

Close notification

From the above parameters It can be seen that there is no parameter used to configure the display duration. If I want it to automatically close after 3 seconds, I can call the close() method to close the notification.


var n = new Notification('状态更新提醒',{
    body: '你的朋友圈有3条新状态,快去查看吧'})setTimeout(function() {
    n.close();}, 3000);
Copy after login

Event

The onclick attribute of the Notification interface specifies an event listener to receive the click event. When the notification window is clicked, the corresponding event will be triggered, such as opening a URL and guiding the user back to their own website.


var n = new Notification('状态更新提醒',{
    body: '你的朋友圈有3条新状态,快去查看吧',
    data: {
        url: 'http://blog.gdfengshuo.com'
    }})n.onclick = function(){
    window.open(n.data.url, '_blank');      // 打开网址
    n.close();                              // 并且关闭通知}
Copy after login

Application scenarios

As mentioned above, it is actually just for use. So where can it be used?

Most of the current website message reminders display the number of messages in the message center, and then send emails to tell users. There is nothing wrong with this process. However, for a user like me, when someone likes something or saves it, I have to send an email to remind me, and I always have to delete the email (obsessive-compulsive disorder). I find it quite annoying and even turn off the email reminder.

Of course, this does not mean that Notification should be used. After all, its function is completely different from that of email.

I think a news website is more suitable. When users browse news, real-time news can be pushed to users. Take Tencent Sports as an example, it uses the Notification API. A notification2017_v0118.js is introduced in the page. If you are interested, you can see how others use it maturely.

As soon as you enter the page, you will obtain authorization. At the same time, there will be a floating box on your page prompting you to allow authorization. If allowed, push notifications will start to be sent to you. However, when it closes the tab, the notification will also be turned off, because it listens to the page beforeunload event.


function addOnBeforeUnload(e) {
    FERD_NavNotice.notification.close();}if(window.attachEvent){
    window.attachEvent('onbeforeunload', addOnBeforeUnload);} else {
    window.addEventListener('beforeunload', addOnBeforeUnload, false);}
Copy after login

Compatibility

When it comes to compatibility, there are naturally a lot of them, and the performance of each browser will be slightly different. Almost all of them are supported on the mobile side, but luckily most of them on the PC side are supported, except for IE. So before using it, you need to check whether the browser supports Notification.

The above is the detailed content of HTML5 desktop notification Notification API usage. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Table Border in HTML Table Border in HTML Sep 04, 2024 pm 04:49 PM

Guide to Table Border in HTML. Here we discuss multiple ways for defining table-border with examples of the Table Border in HTML.

Nested Table in HTML Nested Table in HTML Sep 04, 2024 pm 04:49 PM

This is a guide to Nested Table in HTML. Here we discuss how to create a table within the table along with the respective examples.

HTML margin-left HTML margin-left Sep 04, 2024 pm 04:48 PM

Guide to HTML margin-left. Here we discuss a brief overview on HTML margin-left and its Examples along with its Code Implementation.

HTML Table Layout HTML Table Layout Sep 04, 2024 pm 04:54 PM

Guide to HTML Table Layout. Here we discuss the Values of HTML Table Layout along with the examples and outputs n detail.

Moving Text in HTML Moving Text in HTML Sep 04, 2024 pm 04:45 PM

Guide to Moving Text in HTML. Here we discuss an introduction, how marquee tag work with syntax and examples to implement.

HTML Ordered List HTML Ordered List Sep 04, 2024 pm 04:43 PM

Guide to the HTML Ordered List. Here we also discuss introduction of HTML Ordered list and types along with their example respectively

HTML onclick Button HTML onclick Button Sep 04, 2024 pm 04:49 PM

Guide to HTML onclick Button. Here we discuss their introduction, working, examples and onclick Event in various events respectively.

HTML Input Placeholder HTML Input Placeholder Sep 04, 2024 pm 04:54 PM

Guide to HTML Input Placeholder. Here we discuss the Examples of HTML Input Placeholder along with the codes and outputs.

See all articles