zoukankan      html  css  js  c++  java
  • Push API

    Push API

      The Push API gives web applications the ability to receive messages pushed to them from a server, whether or not the web app is in the foreground, or even currently loaded, on a user agent.

      For an app to receive push messages, it has to have an active service worker. When the service worker is active, it can subscribe to push notifications, using PushManager.subscribe()

      

      subscribe 返回一个pushSubscription.其中PushSubscription.endpoint要发送给服务器,服务器以endpoint为地址,给client发push.it is a good idea to keep your endPoint a secret, so others do not hijack it and abuse the push functionality.

    navigator.serviceWorker.register('serviceworker.js').then(
      function(serviceWorkerRegistration) {
        var options = {
          userVisibleOnly: true,
          applicationServerKey: applicationServerKey
        };
        serviceWorkerRegistration.pushManager.subscribe(options).then(
          function(pushSubscription) {
            console.log(pushSubscription.endpoint);
            // The push subscription details needed by the application
            // server are now available, and can be sent to it using,
            // for example, an XMLHttpRequest.
          }, function(error) {
            // During development it often helps to log errors to the
            // console. In a production environment it might make sense to
            // also report information about errors back to the
            // application server.
            console.log(error);
          }
        );
      });
    View Code

      The service worker will be started as necessary to handle incoming push messages, which are delivered to theServiceWorkerGlobalScope.onpush event handler. 

      每一个endpoint都是独一无二的。不要泄露,否则其它服务器可以给你的client发push。

      当push到来时,全局的onpush属性会被调用。

    this.onpush = function(event) {
      console.log(event.data);
      // From here we can write the data to IndexedDB, send it to any open
      // windows, display a notification, etc.
    }
    View Code

       

    参考:https://developer.mozilla.org/en-US/docs/Web/API/Push_API

  • 相关阅读:
    js修改div标签中的内容
    echarts如何显示在页面上
    mybatis提取<where><if>共用代码
    部署LAMP-LAMP平台集成
    PHP安装指南
    部署LAMP-mysql 安装
    apache虚拟主机
    apache默认网站
    HDU 5375 Gray code 格雷码(水题)
    HDU 5371 Hotaru's problem (Manacher,回文串)
  • 原文地址:https://www.cnblogs.com/tekkaman/p/7502964.html
Copyright © 2011-2022 走看看