Developer's Blog

Windows 10 April 2018 Update で標準ブラウザ Edge にもプッシュ通知できるようになりました

こんにちは。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 アカウントでは、フェンリルプロダクトの最新情報などをつぶやいています。よろしければフォローしてください!

Copyright © 2019 Fenrir Inc. All rights reserved.