GeoLeaf Core API - v3.0.0
    Preparing search index...
    PWAManager: {
        init(config: PWAConfig): void;
        isInstallable(): boolean;
        _reset(): void;
    } = ...

    GeoLeaf PWA Manager. Initializes the appropriate install prompt experience based on the platform.

    Type Declaration

    • init: function
      • Initializes the PWA install prompt for the current platform.

        • Opt-in: does nothing unless config.installPrompt.enabled === true.
        • iOS Safari: displays a bottom sheet with manual install instructions.
        • Other browsers: listens for beforeinstallprompt and shows a custom banner.

        Call this method after the GeoLeaf config has been loaded (i.e. from app/boot.ts).

        Parameters

        • config: PWAConfig

          PWA section from the loaded geoleaf.config.json.

        Returns void

    • isInstallable: function
      • true when the app can still be installed on this device — for integrators who want to render their own install button instead of (or alongside) the built-in banner.

        Mirrors the platform split of PWAManager.init:

        • iOS Safari — never fires beforeinstallprompt; answers from the UA + navigator.standalone check (installable = iOS and not already installed).
        • Android / Chrome / Edge — answers true once the browser has handed us a deferred beforeinstallprompt event.

        ⚠️ On Android this reports "a prompt is available", not "the browser could install this app": the deferred event is only captured if PWAManager.init has run, which is gated on modules.pwa.installPrompt.enabled === true. With the prompt disabled, it answers false even on an installable Chrome. iOS is unaffected — its check needs no listener.

        Returns boolean

        true if an install path is available right now.

    • _reset: function
      • Registry destroy / test seam: tears down both install sub-flows (the Android install-prompt global listeners and the iOS banner timer/banner) so a re-init starts clean (S7.5 — no listener / timer leak).

        Returns void