apexid 0.0.8 copy "apexid: ^0.0.8" to clipboard
apexid: ^0.0.8 copied to clipboard

ApexID Login plugin (created for ApexTeam flutter developers)

example/lib/main.dart

import 'package:apexid/apexid.dart';
import 'package:apexid/apexid_locator.dart';
import 'package:apexid/providers/login_notifier.dart';
import 'package:apexid/screens/settings_screen.dart';
import 'package:apexid/services/navigation_service.dart';
import 'package:apexid_example/widget_load.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';

import 'router.dart';

void main() {
  debugDefaultTargetPlatformOverride = TargetPlatform.fuchsia;
  ApexIdLocator.setupLocator();
  runApp(MyApp());
}

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> with WidgetLoadMixin {
  @override
  void initState() {
    ApexId.shared.initialize(
        publicKey: "286169943627329:hfttUnXvZ",
        apexIdTheme: ApexIdTheme.lightTheme,
    loginSettings: LoginSettings(
      initialLanguage: InitialLanguage.persian,
      logoPath: "assets/img/logo.png"
    ));
    super.initState();
  }

  @override
  void onLoad(BuildContext context) async {}

  @override
  Widget build(BuildContext context) {
    return MultiProvider(
      providers: <SingleChildWidget>[
        ChangeNotifierProvider<LoginNotifier>(
          create: (_) => LoginNotifier(),
          lazy: true,
        ),
      ],
      child: MaterialApp(
        builder: BotToastInit(),
        navigatorObservers: [BotToastNavigatorObserver()],
        navigatorKey: apexIdLocator<NavigationService>().navigatorKey,
        initialRoute: ApexIdRouter.mainRoute,
        onGenerateRoute: ApexIdRouter.generateRoute,
        title: 'ApexID Example',
      ),
    );
  }
}

class MainScreen extends StatefulWidget {
  @override
  _MainScreenState createState() => _MainScreenState();
}

class _MainScreenState extends State<MainScreen> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("ApexId Example"),
      ),
      body: Column(
        children: [
//          Text("Login AccessKey: " + ApexId.shared.getAccessKey()),
          RaisedButton(
            child: Text("Press to logout from apexId"),
            onPressed: () {
//              Router.namedNavigateTo(context, Router.testRoute);
              ApexId.shared.logoutFromApexId();
              setState(() {});
            },
          ),
          ApexId.shared.apexSettingButton(
              child: RaisedButton(
                onPressed: () {
                  apexIdLocator<NavigationService>().push(MaterialPageRoute(
                      builder: (context) => ApexIdSettingScreen()));
                },
                child: Text("ApexID Settings"),
              ),
              onBackPressed: () {
                apexIdLocator<NavigationService>().push(
                    MaterialPageRoute(builder: (context) => MainScreen()));
              }),
          ApexId.shared.apexLoginButton(
            onLoginMethod: (accessKey) {
              /// You should navigate user to your page.
              apexIdLocator<NavigationService>().push(
                  MaterialPageRoute(builder: (context) => MainScreen()),
                  replacement: true);
            },
            child: Padding(
              padding: EdgeInsets.symmetric(horizontal: 20),
              child: RaisedButton(
                onPressed: () {
                  apexIdLocator<NavigationService>().push(
                      MaterialPageRoute(builder: (context) => ApexIdApp()),
                      replacement: true);
                },
                shape: RoundedRectangleBorder(
                    borderRadius: BorderRadius.circular(40)),
                color: Colors.white,
                child: Row(
                  mainAxisAlignment: MainAxisAlignment.spaceBetween,
                  children: [
                    Image.asset(
                      "assets/img/logo.png",
                      package: "apexid",
                      width: 20,
                      height: 20,
                    ),
                    Text(
                      "Press to login with ApexId",
                      style: TextStyle(color: Colors.blue),
                    ),
                  ],
                ),
              ),
            ),
            cntxt: context,
          ),
        ],
      ),
    );
  }
}