GameWith Developer Blog

GameWith のエンジニア、デザイナーが技術について日々発信していきます。

iOS16.4でWebPushに対応したので試してみたけど活用は難しそうだった件 #GameWith #TechWith

こんばんは! FF16プレイ中の @peka3 と申します

 

iOS16.4から、ついにiOSでもWebPushが使えるようになりました

今までGameWithアプリではプッシュ通知を活用していましたが、Webにおいても、ユーザーからのアクションを待つだけではなく、こちらからアクションを仕掛けられるプッシュ通知は大きな武器になります

 

うまく活用できれば、例えば

  • ポケモン交換掲示板でレスがついたらプッシュ通知でわかる
  • モンストマッチングしたらプッシュ通知でわかる
  • ツールの更新がプッシュ通知でわかる

などを、ユーザーが受動的に知ることが出来ます

 

ということで、iOSでのWebPushを試してたんですが、

実情色々厳しいところがあったので、その共有の記事となります

結論から言うと

iOSのWebPushは制限が多く、活用が難しそうでした

以下にその詳細を書きます

iOSではPWAとして起動した場合のみ、WebPushが使える

  • まず、PWAとしてインストールしてもらうには、WebサイトをPWAとしての体裁を整えた上で、ユーザーに「ホーム画面に追加」をして貰う必要があります
  • さらにその後、インストールしたPWAのほうからWebPushの購読をして貰う必要があるので、Webからアプリに移行するのとそう変わらない作業をユーザーに強いる必要があります

ページを開いた上で、「ホーム画面に追加」をして貰う必要あり

 

プッシュ通知が来ても音がならない

  • 通知を許可すると、iOSの「設定」で、他にアプリと同じようにPWAの設定画面が出てきますが、そこの「通知設定」でサウンドの設定がありません

  • 通知が来ても音がなりません。
  • プッシュ通知によって こちらからユーザーにアクションする という意味合いが、かなり薄くなってしまいます

 

PWA自体のUI設計も考慮が必要

  • iOSでアプリとして認識させるにはウェブアプリマニフェストで display: standalone にする必要があるのですが
    • この設定にするとアプリのようなUIになるので、URLバーが非表示になります
    • Safariではないので「戻る・進む」ボタンがありません

URLを意識しないUI構成、外部リンクを外すなど、考慮する必要がありそうです

 

※ ウェブアプリマニフェストはWebサイトをPWAとしてインストール可能であることを、ブラウザに知らせるためのjsonファイルです

ウェブアプリマニフェスト | MDN

SafariとPWAでcookieなどのストレージが別扱い

  • PWAとしてインストールした瞬間、Safariと別のストレージが作られるようです
  • localStorageも別になります
  • GameWithIDもアプリ側で再ログインが必要

 

まとめ

WebPushによるプッシュ通知は、アプリのプッシュ通知と比較して機能に制限がある上に、PWA対応も必要で導入コストが高く感じました

今は登場したてで制約が多く使いにくいですが、今後の発展に期待したいと思います!

iOSでWebPushを使ってみたいと思った方の参考になれば幸いです!

 

GameWithでは現在エンジニアを絶賛募集中です!

サーバーエンジニアやフロントエンジニアの方、AIに興味がある方や、Unityでの開発に興味がある方もお気軽にカジュアル面談をお申し込みください!

github.com