当前行为
将配置添加到应用程序模块environment.production ? ServiceWorkerModule.register('./ngsw-worker.js') : []
并serviceWorker
在 .angular-cli.json 中启用后,我的应用程序通过 Chrome 安装在我的设备(LG G6)上并display
在 manifest.json 中设置属性standalone
或fullscreen
在我的设备上打开后,应用程序始终在浏览器中打开在新标签中。当我删除服务工作者配置(应用程序模块中的行)时,只有清单的应用程序以独立或全屏模式打开。
预期行为
安装应用程序后,应用程序应该以 stadalone 或全屏模式打开,取决于 manifest.json 中的设置值。
使用说明最小化重现问题
我有使用 4.3 版生成并更新到 5.1.3 的应用程序,添加 @angular/service-worker 并使用build
带有--prod
. 为了为应用程序提供服务,我在我的 chrome 中使用端口转发。
清单.json
{
"short_name": "FindPark",
"name": "Find Nearby Car Parks",
"start_url": "/search",
"theme_color": "#206886",
"background_color": "#ffffff",
"display": "standalone",
"orientation": "portrait",
"icons": [
{
"src": "/assets/favicon-72x72.png",
"sizes": "72x72",
"type": "image/png"
},
{
"src": "/assets/favicon-96x96.png",
"sizes": "96x96",
"type": "image/png"
},
{
"src": "/assets/favicon-144x144.png",
"sizes": "144x144",
"type": "image/png"
},
{
"src": "/assets/favicon-256x256.png",
"sizes": "256x256",
"type": "image/png"
},
{
"src": "/assets/favicon-512x512.png",
"sizes": "512x512",
"type": "image/png"
}
]
}
ngsw-config.json
{
"index": "/index.html",
"assetGroups": [{
"name": "app",
"installMode": "prefetch",
"resources": {
"files": [
"/index.html"
],
"versionedFiles": [
"/*.bundle.css",
"/*.bundle.js",
"/*.chunk.js"
]
}
}, {
"name": "assets",
"installMode": "lazy",
"updateMode": "prefetch",
"resources": {
"files": [
"/assets/**"
]
}
}]
}
改变行为的动机/用例是什么?
我不知道为什么不使用我的应用程序,因为我发现类似于我的应用程序 https://angularfirebase.com/lessons/hnpwa-angular-5-progressive-web-app-service-worker-tutorial/ 的示例和我克隆并构建并正常工作(显示为独立应用程序)。
环境
Angular version: 5.1.3 (also checked with 5.0.0, 5.0.3, 5.1.0)
Browser:
- [x] Chrome (desktop) version 63.0.3239.108
- [x] Chrome (Android) version 63.0.3239.111
- [ ] Chrome (iOS) version XX
- [ ] Firefox version XX
- [ ] Safari (desktop) version XX
- [ ] Safari (iOS) version XX
- [ ] IE version XX
- [ ] Edge version XX
For Tooling issues:
- Node version: 6.11.4
- Platform: Linux
Others:
@ngrx 4
rxjs 5.5.6
Android