如何将推送通知发送到Web浏览器?


Minions
2024-12-26 11:47:16 (1月前)
  1. 关于Push,我过去几个小时一直在读


通知
</跨度>
API和Web

通知
</跨度>
API。我还发现谷歌&amp;苹果推动

通知
</跨度>
通过GCM和APNS分别免费提供服务。

我想知道我们是否可以实施推送

通知
</跨度>
到使用桌面的浏览器

通知
</跨度>
,我相信这是什么网络

通知
</跨度>
API确实如此。我看到了关于如何生成的谷歌文档

8 条回复
  1. 0# Minions | 2019-08-31 10-32



    我建议使用pubnub。我尝试从浏览器使用ServiceWorkers和PushNotification,但是当我尝试它时,webviews不支持这一点。




    https://www.pubnub.com/docs/web-javascript/pubnub-javascript-sdk


  2. 1# v-star*위위 | 2019-08-31 10-32



    截至目前,GCM仅适用于chrome和android。
    类似firefox和其他浏览器都有自己的api。



    现在讨论如何实现推送通知,以便它适用于具有自己后端的所有常见浏览器。




    1. 您需要客户端脚本代码,即服务工作者,请参阅(

      谷歌推送通知

      )。虽然这对其他浏览器来说仍然相同。

    2. </醇>


      2.使用Ajax获取端点后,将其与浏览器名称一起保存。



      3.您需要根据您的要求创建后端,其中包含标题,消息,图标,点击URL字段。现在点击发送通知后,调用一个函数说send_push()。例如,在这个针对不同浏览器的编写代码中



      3.1。

      用于镀铬
      </强>




      1. $headers = array(
        Authorization: key=’.$api_key(your gcm key),
        Content-Type: application/json’,
        );
        $msg = array(‘to’=>’register id saved to your server’);
        $url = https://android.googleapis.com/gcm/send‘;
        $ch = curl_init();

      2.   // Set the url, number of POST vars, POST data
      3.   curl_setopt($ch, CURLOPT_URL, $url);
      4.   curl_setopt($ch, CURLOPT_POST, true);
      5.   curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
      6.   curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
      7.   curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
      8.   curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($msg));
      9.   $result = curl_exec($ch);
      10. </code>


      3.2。

      对于mozilla
      </强>




      1. $headers = array(
        Content-Type: application/json’,
        TTL’:6000
        );

      2.    $url = 'https://updates.push.services.mozilla.com/wpush/v1/REGISTER_ID_TO SEND NOTIFICATION_ON';
      3.   $ch = curl_init();
      4.   // Set the url, number of POST vars, POST data
      5.   curl_setopt($ch, CURLOPT_URL, $url);
      6.   curl_setopt($ch, CURLOPT_POST, true);
      7.   curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
      8.   curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
      9.   curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
      10.   $result = curl_exec($ch);
      11. </code>


      对于其他浏览器请谷歌…


  3. 2# 陆离 | 2019-08-31 10-32



    您可以通过服务器将数据从服务器推送到浏览器

    服务器端事件

    。这本质上是客户端可以从浏览器“订阅”的单向流。从这里开始,您可以创建新的

    Notification

    作为SSE的对象流入浏览器:




    1. var source = new EventSource(‘/events’);

    2. source.on(‘message’, message => {
      var notification = new Notification(message.title, {
      body: message.body
      });
      });

    3. </code>


    有点老了,但是

    这篇文章由Eric Bidelman撰写

    解释了SSE的基础知识,并提供了一些服务器代码示例。


  4. 3# Minions | 2019-08-31 10-32



    Javier介绍了通知和当前的限制。



    我的建议:

    window.postMessage

    我们等待残疾浏览器赶上,否则

    Worker.postMessage()

    继续与Web Workers一起运营。



    这些可以是具有对话框消息显示处理程序的后备选项,用于当通知功能测试失败或权限被拒绝时。



    通知具有功能和拒绝权限检查:




    1. if (!(“Notification in window) || (Notification.permission === denied”) ) {
      // use (window||Worker).postMessage() fallback …
      }

    2. </code>

  5. 4# Minions | 2019-08-31 10-32




    我可以重新定义你的问题,如下所示
    </强>




    我们是否可以拥有自己的后端向Chrome,Firefox,Opera&amp;苹果浏览器?




    是。今天之前

    (2017/05)

    ,您可以使用相同的客户端和服务器端实现来处理Chrome,Firefox和Opera(没有Safari)。因为他们以相同的方式实现了Web推送通知。那是

    推送API

    W3C的协议。但Safari有自己的旧架构。所以我们必须单独维护Safari。



    参考

    浏览器推

    repo for guide lines用您自己的后端为您的Web应用程序实现Web推送通知。它通过示例解释了如何在没有任何第三方服务的情况下为Web应用程序添加Web推送通知支持。


  6. 5# 荀彧. | 2019-08-31 10-32



    这是为所有浏览器执行推送通知的简单方法

    https://pushjs.org




    1. Push.create(“Hello world!”, {
      body: Hows it hangin’?”,
      icon: ‘/icon.png’,
      timeout: 4000,
      onClick: function () {
      window.focus();
      this.close();
      }

    2. </code>


    });


  7. 6# 诸葛神侯 | 2019-08-31 10-32



    GCM / APNS仅适用于Chrome和Safari。



    我想你可能在寻找

    Notification





    https://developer.mozilla.org/en-US/docs/Web/API/notification




    它适用于Chrome,Firefox,Opera和Safari



登录 后才能参与评论