こんにちは。BoltzEngine 担当の伊藤です。
Windows 10 の最新版、April 2018 Update (バージョン1803、ビルド17134.1) が配信されました。このアップデートで、Windows 10 の Microsoft Edge でもウェブプッシュが使えるようになりました。
これまで Chrome や Firefox を別途導入する必要がありましたが、標準の Edge だけでプッシュ通知が実現できるようになったので、今後より利用しやすくなりました。
Edge のウェブプッシュを体験する
ウェブプッシュは、BoltzEngine のプロダクトページで体験できます。実際に Edge でウェブプッシュを試してみましょう。
まず、「通知を許可」ボタンをクリックすると、ウィンドウ下部に「(ウェブサイトのドメイン) からの通知を表示してよろしいですか?」というダイアログが表示されるので「はい」をクリックします。
真ん中の「メッセージを送信する」セクションが有効になるので、メッセージを入力して送信ボタンをクリックします。
すると、Windows アプリと同じ形で通知が表示されます。
もちろん、アクションセンターにも入ります。更に、Edge ではブラウザが閉じている場合でも通知が到達します。これは非常に大きなポイントではないでしょうか。
ウェブプッシュの仕組みを改めて知る
ウェブプッシュもスマートフォンアプリのプッシュ通知と同じように、ブラウザベンダーのプッシュサービスを経由して配信されます。Chrome や Sleipnir for Windows では Firebase Cloud Messaging、Firefox では Mozilla Push Service が使われており、通知を有効にしたときはそれぞれの通知サービスからエンドポイント URL が返ってきます。
Edge では Windows Notification Service (WNS) が使われており、https://sg2p.notify.windows.com/w/ のようなエンドポイント URL が得られます。
ウェブプッシュではエンドポイント URL の他にブラウザの公開鍵や Authentication Secret もあわせて得られます。これら3つの値をひとまとめにして BoltzEngine では「ウェブプッシュトークン」として扱います。
プッシュ通知を送るときは、得られたエンドポイント URL に対して、ブラウザの公開鍵や Authentication Secret を使って暗号化したデータを送ります。送られた先の通知サービス、Edge では WNS がブラウザに対して通知を配信します。
BoltzEngine 2.5 へのアップデートが必要です
BoltzEngineをウェブプッシュでご利用の場合、以下の2つの対応をしていただくことで Edge でもウェブプッシュを送ることができるようになります。
- BoltzEngine 本体のアップデート (最新版は 2.5)
- boltzwebtokens.js の更新 (BoltzMessenger Web 2.5 に付属のものをお使いいただく必要があります)
現在わかっている問題
ウェブプッシュの必須パラメータの一つに TTL があります。これは「通知のメッセージの有効期限」を秒数で指定するフィールドです。サービス側が対応していれば、一度送信に失敗しても TTL の秒数の間はリトライしてくれます。
現在のところ、Edge の通知サービスには「TTL=0 の場合、400 Bad Request になる」という不具合があります。RFC 上は即時送信になります。
こちらは既に Edge の Issue Tracker に報告されており、現在修正中とのことです。当面は 1 以上の値をセットして使う必要があります。
いかがでしょうか。OSの一機能として組み込まれたブラウザですので、閉じているときでも通知が到達するなど、他にはないメリットがあると思います。ぜひ一度試してみてください。
フェンリルのオフィシャル Twitter アカウントでは、フェンリルプロダクトの最新情報などをつぶやいています。よろしければフォローしてください!