apexid 0.0.8 apexid: ^0.0.8 copied to clipboard
ApexID Login plugin (created for ApexTeam flutter developers)
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,
),
],
),
);
}
}