推播通知不管对 App 或是网站来说都是一种重新吸引用户来使用 App 的方法,所以目标是即使网站、App 关闭时也要能在背景接收推播。推播的目的是为了增加 engagement,在行销领域中 engagement 这个常见的指标就是指用户在网站或 APP 上的互动程度或者参与度。
因为主要是想在背景接受推播,所以实作上是基於可以背景执行的 Service Worker 来协助相关逻辑撰写。
那实际上就是分成推送和接收两方面,在网站中推送和通知使用不同但互补的 API:
实现推送的三个关键步骤是:
底下连结提供基本的推播示范:
https://linyencheng-push-notification.herokuapp.com/
前端在实作概念上主要是四个步骤:
PushSubscription
需要的所有相关讯息,这里可以把 PushSubscription
当成用户的 ID在实作後端的时候会遇到三个问题:
收到订阅通知的请求时,将请求内容验证後就将消息推播到浏览器,若是浏览器离线,讯息就会排队储存起来等连线恢复後继续传送
浏览器会依照符合 IETF 标准的推播协议实作,服务器原则上就是使用套件只要提供一个 endpoint 并且处理 PushSubscription 即可。
API 提供了一种向装置发送讯息的方法
只要从服务器发了推播消息,推播服务会将讯息保留,直到发生以下事件之一:
当推播服务成功推播後,浏览器会:
透过 Service Worker 浏览器可以在不打开页面的情况下去监听相关事件,所以 App 在 Service Worker 收到 "推播" 事件後,就可以执行任何背景的任务,像是偷偷传送分析资料、离线快取资源下载、显示通知等等。
<<: 【在厨房想30天的演算法】Day 20 演算法 : 最小生成树 MST Kruskal、Prim
今日文章目录 前言 需求说明 过程纪录 参考文章 名词解释真的好难,会写教学文还让大家看得懂的前辈...
Custom Hooks 是指可以建立一个自订的个函式,在函式中使用Hook写出能重复利用的功能,将...
场景与需求 APP跟网页一样,要被下载,最容易的办法就是要取得流量大的关键字的上位排名,也就是要做S...
作为软件工程师的我们应该都曾有过一个疑问,开始写程序之前,要不要先做规划。 这个问题也曾经困扰着我跟...
前言 有一次在串接合作厂商的 API 时,需要把他原本取 token 的 javascript 改写...