【PWA】iPhoneのホームバー干渉を防ぐための対策方法

2024年10月22日2025年2月8日
記事内に広告が含まれています。

PWAアプリの要素が、iPhoneのホームバーに干渉してしまう。どうすればいいの?
PWA化を行うことでWebサイトがネイティブのような見た目になりますが、問題となるのがiPhoneやiPadのホームバーとの干渉です。
特にボトムナビゲーションを実装しているアプリでは、ホームバーとボトムナビゲーションが干渉してしまい、ボタンが押しにくくなるといったUIの問題が発生することがあります。
この記事ではその対策方法について紹介します。
スポンサーリンク
対策方法
フッターが、ホームバーに干渉していると想定します。
<footer>
<p>これはフッターです</p>
</footer>
この場合、footer にホームバー分の padding-bottom を設定します。Appleデバイスでホームバーがあるときのみ、パディングを付与する方法です。
Viewportの記述
まず、<head> タグ内の viewport を次のように書き換えます。
<meta name='viewport' content='initial-scale=1, viewport-fit=cover' />
CSSの記述
次に、CSSで padding-bottom を以下のように設定します。
<footer>
<p>これはフッターです</p>
</footer>
<style>
footer {
padding-bottom: env(safe-area-inset-bottom);
}
</style>
この記述により、Appleのホームバーがあるデバイスでは自動的に padding-bottom が追加され、干渉が防げます。
パディングの調整
さらにパディングを追加したい場合は、以下のように + を使って追加の幅を指定することもできます。
footer {
padding-bottom: calc(env(safe-area-inset-bottom) + 50px);
}
これでホームバーとの干渉を防ぐことができ、UIの問題が解決します。
スポンサーリンク
最後に
ここまで、PWAアプリにおけるAppleデバイスのホームバー干渉を避ける方法について紹介しました。
この対策は、PWAアプリにはほぼ必須だと思います。ぜひ参考にして実装してみてください。
ここまでお読みいただき、ありがとうございました。
関連記事

【MacOS】GeyserMCとFloodgateでクロスプレイ可能なMinecraftサーバーを建てる
この記事では、PaperMC・GeyserMC・Floodgateを利用して、Java版と統合版のクロスプレイが可能なMinecraftサーバーを建てる方法について紹介しています。
2025年4月6日

【Next.js】ブログをISRからSSGに移行しました【generateStaticParams】
この記事では、Next.jsをSSR・ISRからSSGに変更する方法や、解決できる課題について紹介しています。
2025年3月4日

【Next.js】Sentryを導入して、エラーを監視する方法を紹介
この記事では、Next.jsにSentryを導入して、本番環境でのエラーを監視する方法について紹介しています。
2025年2月4日2025年3月9日
スポンサーリンク
スポンサーリンク