问题标签 [progressive-web-apps]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2943 浏览

progressive-web-apps - 渐进式 Web 应用程序中的背景事件?(构建一个闹钟应用程序)

我正在玩渐进式网络应用程序,我想尝试构建的一个场景是闹钟应用程序。

我认为要使此应用程序正常工作,它必须在后台运行并在满足内部条件(当前时间 === 警报时间)后变为活动状态。

这可能吗?或者,渐进式网络应用程序是否还没有通过 API 在后台运行/访问电话功能的自由。

谢谢!

0 投票
1 回答
699 浏览

javascript - 检查 Progressive Web 应用程序中的网络更改?

如何在 Progressive Web 应用程序中更改网络时获取回调?

示例:在 Flipkart Lite 中,当我们断开互联网连接时,应用颜色会从蓝色变为灰色,当我们从互联网连接时,应用颜色会从灰色变为蓝色。请告诉我,如何实现此功能?

0 投票
1 回答
256 浏览

google-chrome - Chrome App Store Manifest vs Web App Manifest

我正在尝试将我的网络应用发布到 Chrome 应用商店。我对第 2 步:创建清单文件感到困惑。这个清单文件也是Web App 清单吗?

如果它们不同,是否意味着我需要两个 manifest.json 文件,如果我打算让它成为一个渐进式网络应用程序,同时也在 Chrome 应用商店上市?我该怎么做呢?谢谢。

0 投票
1 回答
188 浏览

angular - 在 Progressive Web App (Angular2) 上导入 Material 的 sidenav 问题

在完成 Angular 的 MobileToolkit 指南 ( https://github.com/angular/mobile-toolkit/blob/master/guides ) 后,我想为我的应用程序带来一些额外的组件......比如 sidenav!

就像教程教我的一样,我添加了使用 SideNav 组件所需的所有代码......

这是我的 app.component.ts 导入:

在此处输入图像描述

这是指令注册:

在此处输入图像描述

添加的外部包(前两个来自提到的教程):

在此处输入图像描述

和所有的出口(同样,来自教程):

在此处输入图像描述

一切就绪后,我执行“ng serve”命令,然后……嗯:

在此处输入图像描述

经过一番研究,我在网上发现了类似的问题,但其中大多数要么与缺少的 Angular 包(http)有关,要么与旧的 Angular2 版本有关。这里不是这种情况,因为我使用的是最新版本并且 http 包已经到位(在 node_modules 和 dist 文件夹中)

如果你想深入挖掘:https ://github.com/d0cz/t-tracker/tree/master

0 投票
1 回答
746 浏览

offline-caching - 渐进式 Web 应用程序和 CMS 驱动的网站

从Addy OsmaniJake Archibald等开发人员的谈话中,我对离线优先、渐进式 Web 应用程序很感兴趣。然而,当我看到这些时,似乎总是在 Web应用程序的上下文中,有人会使用 SPA 来构建聊天应用程序、照片应用程序,并与来自 API 端点的数据进行交互。

我通常与使用 CMS 构建 10k+ 页面的客户合作,这些页面具有各种长度和组合的各种不同内容:所见即所得的内容、横幅、表格等。

对于 CMS 驱动的工作,离线优先、渐进式 Web 应用程序是否可行?如果是这样,要考虑保持渐进增强的最佳实践是什么?

0 投票
3 回答
2612 浏览

push-notification - 如何为推送通知添加分析

我正在开发渐进式网络应用程序,我想为推送通知实施分析。

如何为推送通知添加分析,以便我能够跟踪和记录有多少人点击了通知,以及有多少人在没有点击的情况下关闭了该通知。

0 投票
1 回答
255 浏览

service-worker - 通过 sw-precache 对已版本化的捆绑文件进行缓存破坏

sw-precache用来允许预先缓存 Angular 应用程序的所有静态资源。我明白了sw-precache concept of versioning by calculating the MD5 hash which is used to determine whether the file has changed or not.

但我想知道我们将如何处理sw-precache通过连接多个文件并缩小它们和版本控制文件生成的捆绑文件(比如 bundle.877095ebde8.js)上的版本控制/缓存破坏。

因为在这种情况下,每次您进行任何更改并创建一个新的版本控制文件时,整个文件都将更改而不是文件内容,因此navigator.serviceWorker.controller始终返回 null。

0 投票
1 回答
2306 浏览

javascript - 在大量缓存站点上使用查询字符串版本标识符的 Service Worker 的最佳方法

故事

我有一个使用传统浏览器缓存的网站,该网站被大量缓存,静态内容长达 365 天。

为了在部署新版本后清除缓存,我使用了一个版本标识符的查询字符串,例如:

但是对于版本的每次升级,加载时间都很糟糕,因为当查询字符串发生变化时,浏览器需要下载所有新内容。


情况

现在,我们有了 Service Worker,我已经将它集成到我的网站中。到目前为止一切正常,版本标识符的查询字符串仍然可以使用。

并且与 SW 集成之前相同的行为仍然存在。然而升级很慢,就像往常一样......


问题

我想知道是否有更好的方法?它可以执行以下操作,并且仍然保留繁重的缓存机制(对于旧浏览器):

  1. 发现新版本
  2. 仍然使用最新版本的旧内容,
  3. 在去获取新版本的所有新内容下,
  4. 下次用户访问该站点时,他们将使用最新版本。

注意它的目标是在部署新版本时更快地加载站点

0 投票
2 回答
279 浏览

progressive-web-apps - 如何搜索渐进式网络应用

我对 Progressive Web App 很感兴趣,它具有以下站点中提到的几个优点

https://developers.google.com/web/fundamentals/getting-started/your-first-progressive-web-app/

其中之一是 Progressive Web App 是可发现的。其实我不是100%理解的。

这意味着我们可以通过谷歌搜索来搜索渐进式网络应用程序。

我有如下三个问题。

  • 我们如何通过谷歌搜索来搜索 Progressive Web App。有关键字吗?因为渐进式网络应用不属于任何应用商店。似乎应该通过谷歌搜索来搜索它,并且需要所有它们的任何组或类别。

  • W3C 清单的哪一项有助于将其识别为“应用程序”</p>

  • Service Worker 注册范围如何允许搜索引擎找到它们

可发现 - 由于 W3C 清单和服务工作者注册范围允许搜索引擎找到它们,因此可以识别为“应用程序”。

0 投票
3 回答
1062 浏览

caching - Service Worker 运行时缓存

我正在使用服务工作者创建一个渐进式 Web 应用程序,并且我正在使用服务工作者工具箱来缓存我的内容。用于缓存我的内容的服务人员代码:

代码运行良好,因为我在控制台中没有看到任何错误。但是我如何检查来自云端的图像或上面配置的 url 是否被缓存并从缓存本身呈现。