flutter_appcenter 1.0.11 copy "flutter_appcenter: ^1.0.11" to clipboard
flutter_appcenter: ^1.0.11 copied to clipboard

Support Android/iOS to Build, Test, and Distribute, Analytics and Diagnostics services.

example/lib/main.dart

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

import 'package:flutter_appcenter/flutter_appcenter.dart';
import 'package:package_info/package_info.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Main()
    );
  }
}

class Main extends StatefulWidget{
  @override
  _MainState createState() => _MainState();
}

class _MainState extends State<Main> {
  bool _initResult = false;
  bool _isUpdate = false;
  bool _isEnabledForDistribute = false;
  String _version = '';
  String _buildNumber = '';

  @override
  void initState() {
    super.initState();
    initPlatformState();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Futter Appcenter'),
      ),
      body: Center(
        child: Text('Running on: FlutterAppCenter v$_version+${_version == _buildNumber ? 0 : _buildNumber} \nresult: ${_initResult ? 'Initialize Successly' : 'appSecret must be not null'}\nApp Center Distribute is ${_isEnabledForDistribute ? 'enable' : 'disable'}\n${_isUpdate ? 'It has the latest version' : 'It\'s the latest version.' }'),
      ),
      floatingActionButton: new FloatingActionButton(
        onPressed: () => checkForUpdate(context),
        tooltip: 'Update',
        child: new Icon(Icons.update),
      )
    );
  }

  // Platform messages are asynchronous, so we initialize in an async method.
  Future<void> initPlatformState() async {
    FlutterAppCenter.init(
      appSecretAndroid: '',//'Your Android App Secret',
      appSecretIOS: '',//'Your iOS App Secret'
      tokenAndroid: '',//'Your Android Token'
      tokenIOS: '',//'Your iOS Token',
      appIdIOS: '',
      betaUrlIOS: 'itms-beta://',
      usePrivateTrack: false,
    ).then((res) async {
      bool enable = await FlutterAppCenter.isEnabledForDistribute();
      PackageInfo packageInfo = await PackageInfo.fromPlatform();
      _isUpdate = await checkForUpdate(context);

      setState(() {
        _version = packageInfo.version;
        _buildNumber = packageInfo.buildNumber;
        _initResult = res;
        _isEnabledForDistribute = enable;
      });
      
    });
  }
}

Future<bool> checkForUpdate(BuildContext context) async{
  return await FlutterAppCenter.checkForUpdate( 
    context,
    downloadUrlAndroid: '',
    dialog: {
      'title': 'App Update Avaiable',
      'subTitle': 'Enjoy the lastest version',
      'content': 'There is a new version available with the most advanced features, please click confirm to upgrade!',
      'middleButtonText': 'TestFlight', // only support iOS
      'confirmButtonText': 'Store',
      'cancelButtonText': 'Postpone',
      'downloadingText': 'Downloading File...'
    }
  );
}
4
likes
35
pub points
0%
popularity

Publisher

unverified uploader

Support Android/iOS to Build, Test, and Distribute, Analytics and Diagnostics services.

Repository (GitHub)
View/report issues

License

MIT (LICENSE)

Dependencies

android_metadata, dio, flutter, install_plugin, open_appstore, package_info, path_provider, permission_handler, progress_dialog, url_launcher

More

Packages that depend on flutter_appcenter