当我们的 Progressive Web App 满足了安装前的审核标准,浏览器就会触发 beforeinstallprompt
这个事件,当事件被触发後,才能够进行後续的安装过程。
所以在实作安装流程上会分成下面三个步骤:
beforeinstallprompt
这个事件透过程序的流程来触发相关安装流程,不管按钮打算放在哪都要先隐藏,因为 PWA 在还没达到 A2HS 的安装前的审核标准前并无法被安装。
安装流程主要会有两种
<button class="add-button">Add to home screen</button>
let deferredPrompt;
const addBtn = document.querySelector(".add-button");
addBtn.style.display = "none";
deferredPrompt
变数储存事件e.preventDefault();
,因为 Chrome 67 以前的版本会自动触发内建提示视窗deferredPrompt
用过就不能再用了// https://github.com/mdn/pwa-examples/blob/master/a2hs/index.js
// 1. 宣告变数储存事件
let deferredPrompt;
window.addEventListener("beforeinstallprompt", (e) => {
// 2. 停用 Chrome 67 前的公版提示视窗
e.preventDefault();
// 3. 记得把事件存起来,後续在安装的流程上会需要
deferredPrompt = e;
// 4. 让 "安装按钮" 显示
addBtn.style.display = "block";
addBtn.addEventListener("click", (e) => {
// 5. 点选後 "安装按钮" 隐藏 (也可以停用)
addBtn.style.display = "none";
// 6. 点选按钮後才触发提示视窗
deferredPrompt.prompt();
// 7. 等待使用者确认或拒绝
deferredPrompt.userChoice.then((choiceResult) => {
// 8. 从 userChoice 的结果判断是否安装成功
if (choiceResult.outcome === "accepted") {
console.log("User accepted the A2HS prompt");
} else {
console.log("User dismissed the A2HS prompt");
}
// 9. 用过就不能再用了
deferredPrompt = null;
});
});
});
透过网址列、浏览器元件自动的提示、浏览器中的选单进行安装的话,开发者无法知道是否 App 已经被安装,所以需要透过 appinstalled
这个事件。
window.addEventListener("appinstalled", () => {
// "安装按钮" 隐藏 (也可以停用)
addBtn.style.display = "none";
// 用过就不能再用了
deferredPrompt = null;
// 安装成功
console.log("PWA was installed");
});
PWA 安装的流程介面设计上 Google 有几个建议
beforeinstallprompt
才显示底下图片皆取自於 https://web.dev/
当 PWA 满足安装前的审核标准时,大部分浏览器会自动地跳出可以被安装的提示。
桌面版本提示:
Photo Credit: https://web.dev/
手机版本提示:
Photo Credit: https://web.dev/
最简单的 UX 就是透过一个安装按钮来提示,简易安装按钮。
Photo Credit: https://web.dev/
像是购物网站或是论坛入口,就蛮适合将安装按钮提示放在固定的 Header 上进行提示。
Photo Credit: https://web.dev/
透过适当的 RWD 设计,让按钮可以更好看。
Photo Credit: https://web.dev/
如果网站本来就有选单,可以透过设计把按钮融入到选单中,记得不要打扰使用者使用选单并透过文案告知安装好处。
Photo Credit: https://web.dev/
当使用者进入到达页面时,蛮适合趁机推广安装,此时记得
Photo Credit: https://web.dev/
大部分的手机使用者已经习惯 banner 跳出提示了,所以其实也可以这麽做,但有两个重点:
Photo Credit: https://web.dev/
透过弹出通知提示,几点注意事项
Photo Credit: https://web.dev/
像是购买後的结帐清单页面,使用者明显完成一次转化,代表其实有兴趣,这时候就蛮适合推荐。
Photo Credit: https://web.dev/
如果安装能有独特的优惠,或是能够有相关优点就要透过提示告知,像是能够接收推播来追踪商品等等,但要注意不要影响了原来的使用者历程。
Photo Credit: https://web.dev/
考虑在登入页面中置入推荐,因为使用者已完成注册,这时候推荐其实不影响,算是适合放置的地方。
Photo Credit: https://web.dev/
新闻文章或其他讯息列表间出现一个推荐安装的讯息,底下三个注意事项:
Photo Credit: https://web.dev/
昨天认识了两种编辑器,你挑好你喜欢的环境了吗,第二天就要开始进入写程序的环节罗,有没有很期待୧⍢⃝୨...
我个人觉得App的名称、icon很重要,毕竟代表你整个app,所以今天开头先来个设定。 因为我记得我...
Q1. 布林盲注型 SQL 注入是什麽 布林(boolean)盲注型在中国,也称为布尔盲注 在一些网...
一. 资料准备 这边的code是参考coursera上课程的code,根据自己的需求改成中文的范例 ...
昨天安装好Node.js了!所以今天要介绍的是Node.js里面的一个预设的套件,它叫做npm它有点...