kevinbatdorf/nativephp-fullscreen

Enter and exit fullscreen (immersive) mode for NativePHP Mobile apps

Maintainers

Package info

github.com/KevinBatdorf/nativephp-fullscreen

Type:nativephp-plugin

pkg:composer/kevinbatdorf/nativephp-fullscreen

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 2

Open Issues: 0

v0.1.0 2026-04-14 07:12 UTC

This package is auto-updated.

Last update: 2026-04-16 10:33:09 UTC


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 WindowInsetsControllerCompat with BEHAVIOR_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 removes body.nativephp-safe-area padding. A WKUserScript at document start reads a sessionStorage flag to apply fullscreen CSS before the page renders, preventing flash-of-insets on navigation. A KVO observer on WKWebView.isLoading re-injects CSS after each page load. Orientation changes are handled automatically.

License

MIT