如果您是技术主管或数字营销分析师,有兴趣为您的 Adobe Experience Manager (AEM) Web 应用程序提供现代 Web 体验,并且一直在寻找相关选项,那么您来对文章了。本文将介绍什么是渐进式 Web 应用 (PWA),以及在 AEM 中通过配置利用 WorkBox 库(无需编码)来创建 PWA 所需的内容。
为何选择 PWA?
渐进式 Web 应用 (PWA) 利用了现代 Web 的功能。它们可以安装在您的设备上,加载速度快,后续访问即时加载。它们对输入响应迅速。它们在不可靠的连接或离线状态下也能良好运行。PWA 使用现代 API 来提供引人入胜的类应用体验,并具有可选的全屏 UI、后台更新和对数据的离线访问。

要将 Web 应用增强为渐进式 Web 应用 (PWA),需要添加两个工件
- Web 应用清单:一个 JSON 配置文件,用于定义应用的入口点 URL、用于表示 PWA 的图标以及其他描述应用程序外观和行为的配置。
- Service Worker:一个脚本,通过定义您的 PWA 使用的资源以及访问这些资源的策略,来提供增强您的 PWA 的后台服务。
什么是 Service Worker?
从本质上讲,Service Worker 只是一个脚本,当您与您的 Web 应用程序交互时,您的浏览器会独立运行该脚本。活动的 Service Worker 提供诸如使用 Cache API 进行智能缓存、使用 Background Sync API 使数据保持最新以及与推送通知集成等服务。具有正确缓存策略的 Service Worker 为各种场景提供稳定可靠的用户体验,即时返回预缓存的资源,将数据存储在缓存中,并在连接到 Web 时更新资源。

从头开始编写 Service Worker 可能很困难。创建 Workbox 就是为了使其更轻松。Workbox 是一组库,可帮助您使用 Cache Storage API 编写和管理 Service Worker 和缓存。Service Worker 和 Cache Storage API 结合使用时,可以控制如何从网络或缓存请求资产(HTML、CSS、JS、图像等),甚至允许您在离线时返回缓存的内容。借助 Workbox,您可以快速设置和管理两者以及更多内容,并使用生产就绪的代码。
将 AEM 站点升级到 PWA
Adobe Experience Manager (AEM) 是一种全面的内容管理解决方案,用于构建网站、移动应用、表单和数字标牌。它可以轻松管理您的营销内容和资产。
虽然 AEM 提供了丰富的库来构建 Web 应用程序,但到目前为止,通过添加 Service Worker 和清单来构建 PWA 一直很困难。
Adobe Experience Manager Sites 是 UI 构建工具,它是 Adobe Experience Manager 的一部分。当与 Adobe Experience Manager 云服务结合使用时,AEM Sites 可以轻松地将任何现有的 AEM 网站或单页应用程序转换为可安装的、支持离线的渐进式 Web 应用 (PWA),只需配置即可,无需编码。它使用 Workbox 来交付渐进式 Web 应用 (PWA) 的最佳实践,并抽象化编写样板清单和 Service Worker 的复杂性。
AEM 支持内容的本地化,这意味着您可以为不同的语言环境设置不同的品牌,甚至不同的离线内容。为此,请为每种语言母版构建不同的 PWA 配置。
开始在 AEM 上进行 PWA 配置
以云服务 Adobe Experience Manager 的身份登录,并选择任何 Adobe Experience Manager Sites 页面或语言母版,然后单击属性。您应该会看到一个名为“渐进式 Web 应用 (Progressive Web App)”的选项卡。(注意:如果您没有看到此选项卡,请联系 Adobe 以启用此功能。)只需点击几下,即可配置渐进式 Web 应用 (PWA) 的安装以及外观和风格。
如果您已完成 AEM Sites 教程,您可能以前见过 WKND 站点。本文使用 WKND 演示作为起点。完成后,您将使用 WorkBox 将 WKND 从 Web 应用更新为 PWA。
配置清单
Web 应用清单是一个 JSON 文件,其中包含描述 PWA 外观和行为的属性。Adobe Experience Manager Sites 提供了一个友好的用户界面来配置这些属性。

启动 URL 是您的 PWA 的入口点。当用户点击手机上的 PWA 图标时,他们将访问启动 URL。显示模式配置应用是窗口体验还是全屏体验。您还可以指定应用程序的屏幕方向。主题颜色是窗口和工具栏的颜色,而背景颜色是应用程序启动时启动画面的颜色。图标是在设备主屏幕或应用程序抽屉中安装应用程序时显示的图像。图像中显示的配置生成如下所示的清单 JSON。
{
"name": "WKND Adventures and Travel",
"short_name": "WKND Adventures and Travel",
"start_url": "/content/wknd/us/en.html",
"display": "standalone",
"theme_color": "#FFDC00",
"background_color": "#FF851B",
"orientation": "any",
"icons": [
{
"src": "/content/dam/wknd/pwa-logo.png",
"type": "image/png",
"sizes": "512x512",
"purpose": "any maskable"
}
]
}
启动 URL 可以与您域的默认着陆页不同。通过更改 start_url
参数,您可以将用户直接发送到应用程序体验,而不是未经身份验证或新用户将看到的默认页面。这为 PWA 用户提供了更流畅、更像应用程序的体验。
AEM 了解不同的语言环境可以有不同的外观和风格。您可以为不同的语言环境或语言配置不同的属性、颜色和图标,然后将配置与链接的页面同步。
一旦在浏览器上访问 PWA,您可以右键单击并检查以调出 DevTools,并在“应用程序 (Applications)”面板下查看清单。

配置 Service Worker
您可以配置要缓存的内容和要使用的缓存策略。
如果您一直在使用 Service Worker,您可能熟悉 缓存策略。缓存策略指定要缓存哪些资源,以及是先在缓存中查找这些资源,还是先在网络中查找,还是在缓存中查找并使用网络回退。然后,您可以选择在安装 Service Worker 时预缓存的资源。AEM 应用程序 Service Worker 实现了预热缓存策略,这意味着即使您指定了丢失或损坏的路径,用户的体验也不会中断。

在 AEM 中,“clientlibs”一词指的是客户端库:已添加到您的项目中的相关 JavaScript、CSS 和静态资源的组合,这些资源提供给客户端 Web 浏览器并由其使用。您可以通过在用户界面中指定这些库,轻松地将客户端库设置为脱机使用。

您还可以包含第三方资源,例如字体。此脱机缓存配置为为您的应用程序生成的 Service Worker 提供配置信息,该 Service Worker 在内部使用 Workbox。这就是使您的应用程序可安装的几乎所有内容。安装后,应用程序图标将像平台应用程序一样显示在您的移动设备主屏幕上。单击该图标将访问 wknd 站点。
请注意,您可以随时更改您的内容或这些设置。当您发布更改时,Service Worker 将在客户端由浏览器更新,并且将向用户显示一条消息,表明有较新版本的 PWA 可用。用户可以单击消息以重新加载应用程序并获取最新的更新。您可以打开浏览器开发者工具和应用程序面板以查看 Service Worker 详细信息。

您可以展开缓存存储以查看已在本地缓存的内容

结果
现在是查看您的辛勤工作成果的时候了。只需配置而无需编码,您就已将您的 AEM 站点增强为渐进式 Web 应用 (PWA)。
Chrome 开发者工具提供 Lighthouse 审核,可让您检查您的 Web 应用程序和配置与渐进式 Web 应用 (PWA) 标准的合规性。

结论
渐进式 Web 应用 (PWA) 为您的网站提供类似应用程序的体验,它利用了 Web 的跨平台和开放特性,同时降低了开发和维护成本,同时提供了对分发的控制。这增强了互动、保留率,最重要的是,提高了转化率。AEM 与 Workbox 结合使用,可以轻松地将您现有的站点增强为 PWA,只需配置而无需编码。