pwa_install_wasm 0.1.1 copy "pwa_install_wasm: ^0.1.1" to clipboard
pwa_install_wasm: ^0.1.1 copied to clipboard

Prompt web users to install your Flutter app as a PWA. A WASM-compatible fork of pwa_install, built on dart:js_interop.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:pwa_install_wasm/pwa_install_wasm.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();

  PWAInstall().setup(installCallback: () {
    debugPrint('APP INSTALLED!');
  });

  runApp(MaterialApp(home: App()));
}

class App extends StatelessWidget {
  const App({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: HomeView(),
      title: 'PWA Install',
    );
  }
}

class HomeView extends StatefulWidget {
  const HomeView({super.key});

  @override
  State<HomeView> createState() => _HomeViewState();
}

class _HomeViewState extends State<HomeView> {
  String? error;

  @override
  void initState() {
    super.initState();
    PWAInstall().onPromptAvailable = () {
      if (mounted) setState(() {});
    };
  }

  @override
  void dispose() {
    PWAInstall().onPromptAvailable = null;
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        body: Center(
      child: Column(
        crossAxisAlignment: CrossAxisAlignment.start,
        mainAxisAlignment: MainAxisAlignment.center,
        children: [
          const Text('Version: 6'),
          Text('Launch Mode: ${PWAInstall().launchMode?.shortLabel}'),
          Text('Has Install Prompt: ${PWAInstall().hasPrompt}'),
          if (PWAInstall().installPromptEnabled)
            ElevatedButton(
                onPressed: () {
                  try {
                    PWAInstall().promptInstall_();
                  } catch (e) {
                    setState(() {
                      error = e.toString();
                    });
                  }
                },
                child: const Text('Install')),
          if (error != null) Text(error!)
        ],
      ),
    ));
  }
}
0
likes
160
points
73
downloads

Documentation

API reference

Publisher

verified publisherdanielesforza.dev

Weekly Downloads

Prompt web users to install your Flutter app as a PWA. A WASM-compatible fork of pwa_install, built on dart:js_interop.

Repository (GitHub)
View/report issues

License

BSD-3-Clause (license)

Dependencies

flutter

More

Packages that depend on pwa_install_wasm