Skip to content

PWA起動時に前回の途中画面が復元されるのを防ぐ (#197) - #209

Merged
ShinoharaTa merged 1 commit into
mainfrom
feature/issue-197-pwa-start
Jul 24, 2026
Merged

PWA起動時に前回の途中画面が復元されるのを防ぐ (#197)#209
ShinoharaTa merged 1 commit into
mainfrom
feature/issue-197-pwa-start

Conversation

@ShinoharaTa

Copy link
Copy Markdown
Member

Closes #197

問題

PWA(ホーム画面追加/standalone表示)から起動すると、manifest の start_url: "/" ではなく前回表示していたURL(おみくじ・参拝画面)が復元されてしまう。OSやブラウザが「最後に表示していたURL」でアプリを復元するためで、クライアント側に起動時の画面リセット処理がなかった。

変更内容

web/plugins/pwa-start.client.js を追加:

  • standalone 表示(display-mode: standalone / iOS の navigator.standalone)を検知
  • sessionStorage で「セッション初回=アプリ起動直後」を判定(タブ切替・同一セッション内の遷移では何もしない)
  • 起動直後に途中画面(/omikuji/sanpai)にいる場合だけトップへ router.replace

なお Issue 起票時に挙げた自己破壊型SW(web/static/sw.js)は gitignore 済みのローカル生成物で、リポジトリに存在せず本番にも出荷されていないことを確認した(本番配信中の /sw.js は PWA モジュール生成の workbox 版)。よって本PRでの削除対象はない。

参拝画面の途中状態は #198(マージ済み)のローカル復元が担うため、本プラグインは「起動画面をトップに揃える」ことに専念している。

検証

  • CI相当の yarn generate(node:18)成功、yarn.lock 差分なし
  • 実機確認手順: Android Chrome / iOS Safari でホーム画面に追加 → /omikuji を表示したままアプリを完全終了 → 再起動でトップが表示されること。通常のブラウザタブではリロード・戻る操作で従来どおり現在URLが維持されること(standalone 以外では何もしないため)

🤖 Generated with Claude Code

https://claude.ai/code/session_015NjEjZtmCpVdJtCeFumYzG

standalone 表示はOSが最後のURLでアプリを復元することがあり、start_url("/")
ではなくおみくじ・参拝画面から始まってしまう。セッション初回(=起動直後)
かつ standalone のときだけ、途中画面ならトップへ戻すプラグインを追加。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015NjEjZtmCpVdJtCeFumYzG
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

PWA/ショートカット起動時に前回URL(おみくじ画面等)が復元されてしまう

1 participant