Android 渐进式Web应用程序的预期启动体验是什么?

Android 渐进式Web应用程序的预期启动体验是什么?,android,google-chrome,service-worker,progressive-web-apps,Android,Google Chrome,Service Worker,Progressive Web Apps,测试渐进式Web应用程序 当我在飞行模式下启动应用程序时,我会获得意想不到的启动/启动体验(Android/Chrome) 从主屏幕启动体验 我看到一个白色的屏幕,然后是“离线恐龙”的短暂闪光,然后应用程序成功启动,一切正常。启动时间比我预期的要长,特别是在笔记本电脑上使用ChromeDevTools进行测试之后,启动几乎是瞬间的 由于调试花费这段时间的地方有点棘手(特别是在“service worker not running”的情况下),因此了解一些基线知识会有所帮助: 从浏览器体验启动 在

测试渐进式Web应用程序

当我在飞行模式下启动应用程序时,我会获得意想不到的启动/启动体验(Android/Chrome)

从主屏幕启动体验

我看到一个白色的屏幕,然后是“离线恐龙”的短暂闪光,然后应用程序成功启动,一切正常。启动时间比我预期的要长,特别是在笔记本电脑上使用ChromeDevTools进行测试之后,启动几乎是瞬间的

由于调试花费这段时间的地方有点棘手(特别是在“service worker not running”的情况下),因此了解一些基线知识会有所帮助:

从浏览器体验启动

在应用程序成功启动之前,只需短暂的“离线恐龙”一闪。开始快得多

问题

  • Android/Chrome的预期启动时间和体验是什么
  • 上述经历是否只是目前的情况(2015年11月)
  • 有没有办法指定Chrome的启动(启动)体验?(我知道splash应用程序清单中的背景色和144x144图标,但仅适用于Opera)
第一次为我做PWA,所以任何关于这方面的信息都会很有帮助

我的平台: 三星GS 5, 安卓5.0,
Chrome 46.0.2490.76

启动屏幕的原因是,在移动设备上,启动渲染过程可能需要一秒钟的时间,因此在应用程序生成第一个绘制之前,我们会绘制一些东西(背景颜色和图标)

如果您在启动时看到白色屏幕,可能是因为您在Chrome登陆(46)之前在主屏幕上添加了闪屏功能。有些事情需要注意:

  • 确保您的清单有一个
    短\u名称
    名称
  • 确保开始url与页面上注册的软件在同一范围内
  • 清单中有良好的图标,理想情况下>192px
  • 将清单中的
    background\u color
    设置为页面上背景的颜色(理想情况下)。这将确保初始屏幕是站点的预期颜色
即使在飞机模式下,你也不应该看到离线恐龙。应该代表理想的体验:蓝色启动屏幕上有一个图标,可以变形为应用程序的显示


回复:图标-我建议使用192px图标或更高版本。

关于离线dino flash:

我正在使用sw toolbox并执行异步工作,以便在工人启动时设置路由处理程序。这导致应用程序脱机并启动时出现脱机dino闪存

要避免这种情况,请设置一个等待异步路由处理程序设置完成的sw工具箱默认处理程序

var-toolbox=require('sw-toolbox');
var setupPromise=someAsyncHandlerSetup()
.然后(函数(){
//将默认处理程序设为临时处理程序,允许其他获取处理程序(例如,sw precache)
toolbox.router.default=null;
});
//在异步处理程序设置完成之前,请提供默认处理程序
//以避免脱机启动时出现脱机恐龙闪存。
toolbox.router.default=函数defaultHandler(请求){
返回setupPromise.then(函数(){
var handler=toolbox.router.match(请求);
if(处理程序){
返回处理程序(请求);
}
抛出新错误('默认处理程序无法处理'+request.url');
});
};

背景色去掉了白色屏幕,但在飞行模式下,我仍然会看到一个简短的“恐龙闪光”。注意:我在启动序列中有一个fetch(作为网络优先策略的结果)。我要删除这个,但不知道这是否会导致恐龙闪光。如果是私有的,你能和我分享paulkinan@google的URL吗。paulkinlan说,您的网络优先方法可能会导致这种情况,但即使这样,您的软件也应该处理请求,而您不应该看到dinoSure。后来我改用了“最快”的策略。启动时间更快,但仍然可以看到恐龙的一闪一闪。同样,只有在从主屏幕开始时才能看到这一点。对bgcolor、图标和渲染进程启动时间的答案进行了投票。暂时不接受“恐龙闪光”的解释。我知道这可能是我的软件/应用程序初创公司正在做的事情,但对这种行为的解释非常有价值。代码是公开的,这里是:dino的想法原因:应用程序从IDB读取所有动态路由,包括起始路由,并安装获取处理程序。这是一个异步操作,刚从服务工作者启动脚本启动,而不是在具有“waitUntil”的生命周期事件上启动。我这样做是因为我需要在服务人员启动时进行设置,而不仅仅是在安装或激活时。也许这就是恐龙的原因?我是不是误会了?