如何在我的网络应用中创建持久/永久的“添加到主屏幕”按钮,就像Google Contribute一样? (见下图)
背景:这是一个带有PWA服务工作者和manifest.json所有设置的Angular v5应用程序。在应用程序中登陆时,将弹出一个横幅,邀请用户添加到主屏幕。这一切都很好。
那么如何在我的网络应用中使用像Google Contribute这样的按钮(见下图)?
答案 0 :(得分:8)
实际上没有标准也没有API可以做到这一点。 话虽这么说,仍然可以做点什么。
如此处所述:
https://developers.google.com/web/fundamentals/app-install-banners/
如果您的应用符合特定条件,Chrome会自动向用户显示横幅广告。
Has a web app manifest file with:
a short_name (used on the home screen)
a name (used in the banner)
a 192x192 png icon (the icon declarations must include a mime type of image/png)
a start_url that loads
Has a service worker registered on your site.
Is served over HTTPS (a requirement for using service worker).
Meets a site engagement heuristic defined by Chrome (this is regularly being changed).
作为iOS的替代方案,我建议使用以下库:
http://cubiq.org/add-to-home-screen(https://github.com/cubiq/add-to-homescreen)
答案 1 :(得分:3)
position: sticky
?
在路由器外添加该按钮,以便它不依赖于视图?不确定你究竟是什么意思。如果你试着多说一点,我可以提供更多帮助。
答案 2 :(得分:3)
您可以通过ng-content
实现此目的。假设我们有CardComponent
,
在card.component.html中我们可以这样:
<div class="card">
<ng-content></ng-content>
</div>
在我们的ContriobuteComponent
中,我们有:
<card>
<div class="card-block">
<a href="#" class="btn btn-primary">Add to Home Screen</a>
<h2>{{username | uppercase }}</h2>
</div>
</card>
div
中的内容会被注入ng-content
。同样,在ReviewsComponent
中,您可以注入不同的内容
答案 3 :(得分:3)
在app.component.html中添加添加到主屏幕按钮。 使用样式根据需要定位。
例如,如果您有
<router-outlet></router-outlet>
将其更改为
<button class = "add-to-home-screen"
(click) = "addToHomeScreenClicked()"> add to home screen</button>
<router-outlet></router-outlet>
答案 4 :(得分:3)
Personnaly我会将它添加到app组件或在路由器之外创建一个组件,我将它显示在一个固定的div块中。你需要角度方面或html / css的帮助吗?对于应用程序组件中的角度
<app-fixedFav [inputFav]="favList"></app-fixedNav>
<app-guide (addToFav)="updateFavList($event)"></app-guide>
然后在您的指南中,当有人向收藏夹添加地点时,会使用EventEmitter发出收藏列表,并在您的应用组件中运行更新功能。然后在您的固定导航中创建一个输入,如我的示例或应用程序组件中的ViewChild,以更新您的固定内容。
答案 5 :(得分:-1)
您可以创建包含按钮的ParentComponent。
然后将每个新组件扩展(继承)到此ParentComponent。