in_app_update_android 1.0.7 copy "in_app_update_android: ^1.0.7" to clipboard
in_app_update_android: ^1.0.7 copied to clipboard

PlatformAndroid

A Flutter plugin for prompting users about Android in-app updates using Play Core API.

example/lib/main.dart

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

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  runApp(const InAppUpdateExampleApp());
}

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'In-App Update Example',
      theme: ThemeData(primarySwatch: Colors.blue),
      home: const InAppUpdateScreen(),
    );
  }
}

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

  @override
  State<InAppUpdateScreen> createState() => _InAppUpdateScreenState();
}

class _InAppUpdateScreenState extends State<InAppUpdateScreen> {
  String _status = 'Tap a button to start';
  bool _loading = false;

  Future<void> checkForUpdate() async {
    setState(() => _loading = true);
    try {
      final info = await InAppUpdate.checkForUpdate();
      setState(() {
        _status = 'Availability: ${info.updateAvailability}\n'
            'Package: ${info.packageName}\n'
            'Version code: ${info.availableVersionCode}\n'
            'Priority: ${info.updatePriority}';
      });
    } catch (e) {
      setState(() => _status = 'Error: $e');
    } finally {
      setState(() => _loading = false);
    }
  }

  Future<void> performImmediateUpdate() async {
    setState(() => _loading = true);
    try {
      final result = await InAppUpdate.performImmediateUpdate();
      setState(() => _status = 'Immediate update result: $result');
    } catch (e) {
      setState(() => _status = 'Error: $e');
    } finally {
      setState(() => _loading = false);
    }
  }

  Future<void> startFlexibleUpdate() async {
    setState(() => _loading = true);
    try {
      final result = await InAppUpdate.startFlexibleUpdate();
      setState(() => _status = 'Flexible update result: $result');
    } catch (e) {
      setState(() => _status = 'Error: $e');
    } finally {
      setState(() => _loading = false);
    }
  }

  Future<void> completeFlexibleUpdate() async {
    setState(() => _loading = true);
    try {
      await InAppUpdate.completeFlexibleUpdate();
      setState(() => _status = 'Flexible update completed');
    } catch (e) {
      setState(() => _status = 'Error: $e');
    } finally {
      setState(() => _loading = false);
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('In-App Update Example')),
      body: Center(
        child: Padding(
          padding: const EdgeInsets.all(16),
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              Text(_status, textAlign: TextAlign.center),
              const SizedBox(height: 24),
              if (_loading)
                const CircularProgressIndicator()
              else ...[
                ElevatedButton(
                  onPressed: checkForUpdate,
                  child: const Text('Check for Update'),
                ),
                const SizedBox(height: 8),
                ElevatedButton(
                  onPressed: performImmediateUpdate,
                  child: const Text('Perform Immediate Update'),
                ),
                const SizedBox(height: 8),
                ElevatedButton(
                  onPressed: startFlexibleUpdate,
                  child: const Text('Start Flexible Update'),
                ),
                const SizedBox(height: 8),
                ElevatedButton(
                  onPressed: completeFlexibleUpdate,
                  child: const Text('Complete Flexible Update'),
                ),
              ],
            ],
          ),
        ),
      ),
    );
  }
}
2
likes
160
points
310
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A Flutter plugin for prompting users about Android in-app updates using Play Core API.

Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

flutter

More

Packages that depend on in_app_update_android

Packages that implement in_app_update_android