有关@angular/pwa和推送通知的事项

首先

由于在Angular PWA相关话题上仍然收到了一些点赞,所以我会写一篇更新文章。

    • @angular/pwaについて

 

    push通知について

关于@angular/pwa

关于Angular6中引入的ng add功能的讨论。

AngularCLI使用schematics这个代码生成工具来生成组件和服务。例如,ng generate component hoge。在v6中添加的ng add使用schematics来完成从npm包的安装到NgModule等的代码添加。

@angular/pwa是用于ng add的代码生成辅助工具包。

你会做什么呢?

npm i @angular/service-worker是一个替代选项,它可以帮助我们添加config文件和ngModule代码。需要注意的是,@angular/pwa是没有意义的,即使我们通过npm i @angular/pwa安装它。这是因为我们必须通过schematics来操作。因此,我们是否可以使用它取决于以下情况。

    • AngularCLIを採用している既存PJ

ng add @angular/pwaしましょう

これから新規で起こす場合

ng new appしてからng add @angular/pwaしましょう

AngularCLIを採用していない既存PJ

大人しくnpm i @angular/service-workerしてセットアップしましょう。その時も@angular/pwaがやっていることを参考にすると良いと思います。

这里是引用自以下公式文档关于@angular/pwa的解释。

将@angular/service-worker包添加到项目中。
通过CLI启用Service Worker的构建支持。
将Service Worker导入并注册到应用程序模块中。
更新index.html文件。
包含添加manifest.json文件的链接。
添加theme=color的meta标签。
安装支持可安装的渐进式Web应用(PWA)的图标文件。
创建名为ngsw-config.json的Service Worker配置文件。此文件指定缓存行为和其他设置。

安装步骤

请参考这篇文章,因为两次写没有意义。几乎所有工作都已经被自动化,我们没有什么要做的了。请适时调整manifest.json和ngsw-config.json。控制ngsw-config的缓存是一项非常复杂和需要有技术水平的工作。(参考文章)

让我们使用Angular CLI v7来创建PWA吧!
https://qiita.com/puku0x/items/a6db78cc67d1eb960384

关于推送通知

有关swPush有消息传出来了。

旧代码文件虽然一直未在公式文档中被提及,所以存在感较弱,但其实早就存在了。如果你有怀疑的话,可以查看这个源代码。看,就在这里!

根据源代码的评论,似乎并不是实验性的翻译。不能在文档中找到的可能是因为iPhone处于某种状况,所以没有引起热议,或者在其他事项上准备了服务器以便进行演示,但是推送通知会将其变得更繁琐,这只是我的猜测。

这个公式之外的参考信息非常有用,非常完善,我没有任何需要补充的。

【Angular推送通知:一个完整的逐步指南】
https://blog.angular-university.io/angular-push-notifications/

Angular推送通知:一份完备的逐步指南

在Angular中实现推送通知

为了不让它就这样结束,我简单做个总结。基本上,推送通知就是服务器推送,所以服务器和浏览器会负责处理。@angular/service-worker可以很好地处理推送API的订阅,所以前端需要专注于创建订阅权限的用户界面。

swPush提供以下功能。

class SwPush {
  messages: Observable<object>
  notificationClicks: Observable<{...}
  subscription: Observable<PushSubscription | null>
  isEnabled: boolean
  requestSubscription(options: { serverPublicKey: string; }): Promise<PushSubscription>
  unsubscribe(): Promise<void>
}
    • pushイベントの購読登録/解除 requestSubscription/unsubscribe

ユーザーに購読許可を出しYESを頂く際に使うやつです。横着してロードイベントに任せずにアプリケーションのUXを熟考して購読許可のタイミングを練りましょう。

メッセージのObservableプロパティ messages

ただブラウザのネイティブ通知UIに出すだけならsubscribeして放っておけばいいが、このObservableがpushサービスで取得した通知群を流してくれるのでオリジナルUIを作れます。
例えばアプリケーション内部の専用通知タブに出すとかの用途です。
この場合、サーバからpushされた通知内容にクライアントでデータ加工したり付与できます。

通知をクリックした時の該当メッセージとアクションの取得 notificationClicks

どんなリアクションするか、腕の振るいどころです。

没有使用浏览器的原生通知UI,而是自定义UI来创建

说到推送通知,我只能想到浏览器提供的本地用户界面(Native UI)。但是根据这篇文章,我对 messages 属性的用法有了很好的参考。它使用推送通知来创建类似 Twitter 通知标签页的设计。

一个新的Angular Service Worker – 创建自动渐进式Web应用。第二部分:实践。

如果你考虑到iPhone,那就可以使用webSocket来实现。如果你对技术感兴趣,或者从未来实现了iOS的push API而来阅读本文的话,你可以通过这个gif大致了解情况。

demo.gif

您可以通过文章中的链接获取实现代码。信息:订阅Observable,然后将其设置为正常输出的UI即可。

希望尽快在iOS平台上实现push API。

就是这样。

广告
将在 10 秒后关闭
bannerAds