2019-01-01から1年間の記事一覧
クライアント側の実装 クライアント側は、基本的に前回までで実装したAPIを叩きにいくように変更します。 サブスクリプション の登録(と古いものがあれば削除) 前回の実装では、サブスクリプションの情報をconsoleに出力するだけでしたが、実際にサブスク…
Expressが提供するAPI自体を実装します。 基本的には第7回で紹介した内容を、Expressの文法に落とし込んでゆく感じになります。 ここで登場するsubscriptionsという変数には前回でSqualizeによって作成されたORマッパーのオブジェクト(DBにデータの追加や削…
ここまでで、任意の内容でプッシュ通知を送ることはできました。 ところが現状では、今後複数のサブスクリプションが増えた時に対応ができません。 push.jsは配列にて複数のサブスクリプションを送れるようになっているため、サブスクリプション が増えるこ…
.htaccessに以下を記述。今回はShift-JISにする想定です。 AddDefaultCharset shift-jis AddType "text/html; charset=shift-jis" .html .php php_value default_charset Shift_JIS php_value mbstring.language Japanese php_value mbstring.http_input aut…
VAPID やっぱり通知内容をカスタマイズしたい。 今回はそのために、VAPIDと呼ばれる仕組みを利用します。 必要なものは、Firebase Consoleから取得できる公開鍵と秘密鍵のペア。 SSHのようにこのキーペアを利用します。 利用する箇所は(1)通知登録時のPus…
はじめに WebPushと呼びます。 ServiceWorkerを使わなくてもJavascriptでプッシュ通知自体は実装できます。 しかしそれはサイトをブラウザ表示したときのみ通知されるもので、そうでなくても送られるプッシュ通知とは異なるものです。 (厳密にいうと参照先…
ServiceWorkerを動かすための最低限のベースができたので、ServiceWorkerに仕事をさせてみましょう。 まずは、メジャーな実装となるキャッシュ制御、つまるところ高速化やオフライン対応の実装を行います。 リクエストがあったらキャッシュを返すようにして…
登録 registerメソッドを使う 一旦インストールしてしまえば、JSに変更がない限りServiceWorkerは更新されない。 このあたりはブラウザがよしなにやってくてる。registerするには後述するserviceworker.jsのパスを引数に指定するだけ。 navigator.serviceWor…
これまでさんざんServiceWorkerという言葉が出てきましたが、ServiceWorkerとはブラウザとインターネットの間に立って色々と便利なことをしてくれるものです。 プロキシのようなイメージだと分かりやすいかもしれません。これがPWAそのものであるといっても…
今回は、PWAの機能の中でもっともシンプルなミニ情報バーの表示をしたいと思います。 ミニ情報バーとは PWAをブラウザで表示した時に画面下部に現れる、ホーム画面へのインストールを促すバナーのことです。 このバナーは正しい設定のもとPWA化されているWEB…
このシリーズPWAは個人的な調査メモをもとにしたものです。 巷の情報が散在して体系的にまとまった書籍もない中、PWAについて全く知識がない状態から実装レベルまでなんとか知識を引き上げようともがいた痕跡です。 なので記事の引用や、実装するためのソー…
instanceof演算子を利用します。 変数objにはjQueryオブジェクトもしくはVanillaなDOMオブジェクトが入っています。 obj instanceof jQuery jQueryオブジェクトであれば戻り値はtrueになります。「instanceof XXX」の「XXX」部は文脈によってjQueryそのもの…