2015年,Google推出了一种新的Android开发网络应用程序方法:渐进式网络应用程序.可以创建一个看起来像本机应用程序的应用程序,可以使用设备的硬件,如摄像头和加速度计,接收推送通知,具有启动器图标,离线工作,存储本地数据等.
在Android上,本机应用程序提供的渐进式Web应用程序不支持哪些功能,反之亦然.
我想测试服务工作者,但我有一个虚拟主机设置,我似乎无法在localhost上启用https.
每当我尝试在localhost上注册服务工作者时,如何将本地虚拟主机URL列入白名单以测试服务工作者?Chrome表示https是启用服务工作者所必需的.如何至少在本地测试中超越此限制.
javascript google-chrome service-worker progressive-web-apps
我想知道什么是IOS设备的渐进式网络应用程序的解决方案,因为他们的默认浏览器SAFARI还不支持渐进式网络应用程序.什么是替代品然后是IOS的同行?
大多数浏览器为localStorage提供每个域5MB的存储限制.服务工作者是否存在此类内存限制/限制?
我知道网络工作者(服务工作者所在的网站)没有这样的限制.但Web Workers并不完全用于资产缓存,而是更多地用于处理(因此CPU是主要关注点).
如果内存大小没有限制,那么设计糟糕的网站可能会使浏览器崩溃吗?
我刚刚尝试实现服务工作者在静态站点上缓存一些JSON文件和其他资产(在localhost chrome版本47.0.2526.73(64位)上运行).使用cache.addAll()我已将文件添加到缓存中,当我打开chrome中的资源选项卡,然后单击缓存存储时,将列出所有文件.
我遇到的问题是我的服务工作者在chrome:// service-worker-internals中被列为"激活"和"正在运行"但是,我无法确定该工作者是否实际上正在拦截请求并提供缓存文件.我添加了事件监听器,即使我在服务工作者开发工具实例中控制日志事件,它也永远不会遇到断点:
this.addEventListener('install', function(event) {
event.waitUntil(
caches.open('v1').then(function(cache) {
console.log(cache);
return cache.addAll([
'/json/0.json',
'/json/1.json',
'/json/3.json',
'/json/4.json',
'/json/5.json',
]);
})
);
});
this.addEventListener('fetch', function(event) {
console.log(event);
var response;
event.respondWith(caches.match(event.request).catch(function() {
return fetch(event.request);
}).then(function(r) {
response = r;
caches.open('v1').then(function(cache) {
cache.put(event.request, response);
});
return response.clone();
}).catch(function() {
}));
});
Run Code Online (Sandbox Code Playgroud)
基本上我正在完成HTML5摇滚服务工作者介绍中描述的事情,但我很确定我的资产不是从缓存中提供的.我已经注意到,服务工作者提供的资产在size列中的devtools的网络选项卡中通过指示"来自服务工作者"来注明.
看起来好像我的代码与示例没什么不同,但是由于某些原因它并没有达到fetch事件.我的代码的要点:https://gist.github.com/srhise/c2099b347f68b958884d
javascript google-chrome service-worker progressive-web-apps
在我的Progressive Web App中,我应该在服务工作者中使用Cache API来获取我的静态资产,还是应该依赖浏览器的本机缓存控制?有什么不同?
我有一个使用 Blazor WebAssembly 制作的渐进式 Web 应用程序,我想知道是否可以向 iOS 设备发送推送通知?虽然人们说如果现在可以在 MacOS 上的 Safari 上运行,Push API 的网站说它不支持 iOS 上的 Safari。
如果我以 iOS 为目标,我是否需要包装每个 Web 应用程序?我没有 MacBook,我是否需要购买一台才能实现这一目标?
还有 Firebase 和 Azure 通知中心,我不能只使用他们的服务为 iOS 发送通知吗?Firebase 只有 Objective-C 和 Swift 示例。
这也引出了另一个问题:通知的传输方式是否取决于平台?我对云服务在这方面的作用感到困惑。
web-applications push-notification ios progressive-web-apps blazor
在Chromium关于服务工作者的网页上,有人指出
iOS上的Chrome不支持服务工作者.
我假设它可以使用一些cordova插件传送到iOS.在iOS设备上有没有其他方法可以使用Service Workers?
我担心在iOS上发布新版本和新版本的cordova之间的时间.
有谁知道iOS上的Chrome是否会在未来支持服务工作者?:)
我很好奇是否有人知道基于javascript的方法来检测网络体验是作为PWA(渐进式网络应用程序)运行还是只是作为标准移动网站运行(具有完整的浏览器UI).
"已安装"的PWA与尚未注册的服务工作者和/或应用程序缓存的PWA之间是否存在任何差异?
我正在开发一个渐进式Web应用程序,它有一个文件输入按钮,用于从设备存储中选择一个文件.它在Chrome桌面版上可以正常离线工作,但Android版禁用了按钮.我不知道如何解决这个问题.现在项目中没有css,只是服务工作者的html和javascript代码.