kevinbatdorf / nativephp-fullscreen
Enter and exit fullscreen (immersive) mode for NativePHP Mobile apps
Package info
github.com/KevinBatdorf/nativephp-fullscreen
Type:nativephp-plugin
pkg:composer/kevinbatdorf/nativephp-fullscreen
v0.1.0
2026-04-14 07:12 UTC
Requires
- php: ^8.2
- nativephp/mobile: ^3.0 || dev-element
Requires (Dev)
- pestphp/pest: ^3.0
README
Enter and exit fullscreen (immersive) mode.
Installation
composer require kevinbatdorf/nativephp-fullscreen
Usage
use KevinBatdorf\Fullscreen\Facades\Fullscreen; // Enter fullscreen (hide status bar + navigation bar) Fullscreen::enter(); // Exit fullscreen (show system bars) Fullscreen::exit(); // Check if fullscreen mode is active $active = Fullscreen::isActive();
JavaScript
import { Fullscreen } from '@kevinbatdorf/nativephp-fullscreen'; await Fullscreen.enter(); await Fullscreen.exit(); const active = await Fullscreen.isActive();
Platform Behavior
- Android: Uses
WindowInsetsControllerCompatwithBEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE. System bars reappear briefly on edge swipe, then auto-hide. Fullscreen persists across page navigations natively. - iOS: Swizzles the root UIViewController to hide the status bar and home indicator. Negates safe area insets so content extends into the notch/dynamic island. Injects CSS to zero out NativePHP's safe area variables (
--inset-*,--sat/sar/sab/sal) and removesbody.nativephp-safe-areapadding. AWKUserScriptat document start reads asessionStorageflag to apply fullscreen CSS before the page renders, preventing flash-of-insets on navigation. A KVO observer onWKWebView.isLoadingre-injects CSS after each page load. Orientation changes are handled automatically.
License
MIT