car_doctor_epass_services 1.0.2 copy "car_doctor_epass_services: ^1.0.2" to clipboard
car_doctor_epass_services: ^1.0.2 copied to clipboard

The Car Services SDK is a Flutter package for Epass Car Services.

example/lib/main.dart

import 'package:car_doctor_epass_services/car_doctor_epass_services.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';
import 'package:car_doctor_sdk_tracking/car_doctor_sdk_tracking.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  await AppTracking.instance.init("http://192.168.1.46/",null,null);
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({key});

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        // This is the theme of your application.
        //
        // Try running your application with "flutter run". You'll see the
        // application has a blue toolbar. Then, without quitting the app, try
        // changing the primarySwatch below to Colors.green and then invoke
        // "hot reload" (press "r" in the console where you ran "flutter run",
        // or simply save your changes to "hot reload" in a Flutter IDE).
        // Notice that the counter didn't reset back to zero; the application
        // is not restarted.
        primarySwatch: Colors.orange,
      ),
      home: const MyHomePage(title: 'SDK Car Services for Epass'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({key, required this.title});

  // This widget is the home page of your application. It is stateful, meaning
  // that it has a State object (defined below) that contains fields that affect
  // how it looks.

  // This class is the configuration for the state. It holds the values (in this
  // case the title) provided by the parent (in this case the App widget) and
  // used by the build method of the State. Fields in a Widget subclass are
  // always marked "final".

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {


  String? EncryptionData =
      'Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJiOEZHOURyWm9fOVJ6X1NCWFRJM0ZtN2hyT3Z4S0JPVklsLXU3d2dQbmVzIn0.eyJleHAiOjE2ODMzNjA2ODUsImlhdCI6MTY4MzMzOTA4NSwianRpIjoiZGQ4NGIzMTEtN2E2NC00ZmJjLTg2OTEtZmQ3N2I3N2JiNTljIiwiaXNzIjoiaHR0cHM6Ly9sb2dpbi5lcGFzcy12ZHRjLmNvbS52bi9hdXRoL3JlYWxtcy9ldGMtaW50ZXJuYWwiLCJhdWQiOiJhY2NvdW50Iiwic3ViIjoiNGI5MzkwNzMtN2EyNS00ZDI1LWExMzMtMWMyM2IwMTk5NTY4IiwidHlwIjoiQmVhcmVyIiwiYXpwIjoibW9iaWxlLWFwcC1jaHVwdCIsInNlc3Npb25fc3RhdGUiOiIyMjNlZGQ4Yi1hZWIxLTQxMjUtOTBmMy1hN2M3NzQ4M2JlN2MiLCJhY3IiOiIxIiwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbImRlZmF1bHQtcm9sZXMtZXRjLWludGVybmFsIiwib2ZmbGluZV9hY2Nlc3MiLCJ1bWFfYXV0aG9yaXphdGlvbiJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoicHJvZmlsZSBlbWFpbCIsInNpZCI6IjIyM2VkZDhiLWFlYjEtNDEyNS05MGYzLWE3Yzc3NDgzYmU3YyIsImVtYWlsX3ZlcmlmaWVkIjpmYWxzZSwibmFtZSI6Ik5HVVnhu4ROIFRIw4BOSCBUUlVORyIsInByZWZlcnJlZF91c2VybmFtZSI6InYwMDE5MDA2OTAiLCJnaXZlbl9uYW1lIjoiTkdVWeG7hE4gVEjDgE5IIFRSVU5HIn0.VZoc0O4X30z5sDnQrUeF3jKfqYcpACFgCKt9qDEyH-KLTVXNlBXRqSOXIVK0S9Vjuy-unyJgwbhu1-hpmXlCXHScx9G9C1GqhOahsRSjXSXY6ns65vc-coSRD9cOqmEKx-KtXFfhl02CVQOpocLwo-yV95_M8pK3ExaRa2XM7KcyH1YeNVDLVetikOLKspp0mtJPaEgYD1aN-57GEFhJX3nSO_xvRCv6UBbE9nLrJOVaNSCiLbBSKnKoy1rSg0_yko2QCs_Imn5hIe4O90EvZQmSY_-MmD88WjSwsxRhNJzplgzJbrhwNXPE6jixJRqh7wsYx8KAKCkb6CqFC1EmZw';
  String contractId = "1900690";
  String name = "NGUYỄN THÀNH TRUNG";
  String phone = "0901706555";
  String identifier = "001089044462";
  String epassToken =
      "Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJiOEZHOURyWm9fOVJ6X1NCWFRJM0ZtN2hyT3Z4S0JPVklsLXU3d2dQbmVzIn0.eyJleHAiOjE2ODQ0OTE2NTYsImlhdCI6MTY4NDQ3MDA1NiwianRpIjoiZThlYWE4NzMtM2ZiMi00YjM4LWIxNzEtNjQ1OTk3MGQ3NjNlIiwiaXNzIjoiaHR0cHM6Ly9sb2dpbi5lcGFzcy12ZHRjLmNvbS52bi9hdXRoL3JlYWxtcy9ldGMtaW50ZXJuYWwiLCJhdWQiOiJhY2NvdW50Iiwic3ViIjoiNGI5MzkwNzMtN2EyNS00ZDI1LWExMzMtMWMyM2IwMTk5NTY4IiwidHlwIjoiQmVhcmVyIiwiYXpwIjoibW9iaWxlLWFwcC1jaHVwdCIsInNlc3Npb25fc3RhdGUiOiI0MTZiMTYwMC04N2I2LTRlMWEtODc0Zi0zNjk3NTQ4Yjc3YzYiLCJhY3IiOiIxIiwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbImRlZmF1bHQtcm9sZXMtZXRjLWludGVybmFsIiwib2ZmbGluZV9hY2Nlc3MiLCJ1bWFfYXV0aG9yaXphdGlvbiJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoicHJvZmlsZSBlbWFpbCIsInNpZCI6IjQxNmIxNjAwLTg3YjYtNGUxYS04NzRmLTM2OTc1NDhiNzdjNiIsImVtYWlsX3ZlcmlmaWVkIjpmYWxzZSwibmFtZSI6Ik5HVVnhu4ROIFRIw4BOSCBUUlVORyIsInByZWZlcnJlZF91c2VybmFtZSI6InYwMDE5MDA2OTAiLCJnaXZlbl9uYW1lIjoiTkdVWeG7hE4gVEjDgE5IIFRSVU5HIn0.IugwNEpb8pkSGfV-7aUO-cZG-WfR_ZGwPf1AO3GWrCcAwKcMc56vFd3cLO3uihsm47AlvNKHr0qDlMzICNiEXb-sebQgH2HDuIXW0ryC-v6vm3Cv0jZsjcZSpAqy6ppTw4VQAZUFvCqFPQ7RLPMkc55G6_vMImhH2mfGOtp4tO4vHBQHn3-mQnL61CJQCehKmycVwPTDe32EJm6zXehYAGCsli1QtbGEuzLat2yxprxpeoHd4fOnvZSCcupFA9ES1MZq8HotndAlWdc_QLZtTOzpLsDyxl_TxGmFl6fpgIy93bTgDeVyPo4N3W-6Okz_3l0HDSbdjm9NOCZzqDWVtw";
  Future<void> openSDK(BuildContext context) async {
    final sdk = SdkCarServices.instance;
    sdk.init(
        SdkFlavor.STAGING, epassToken, contractId, name, phone, identifier);
    await sdk.open(context);
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: Text(widget.title),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              IconButton(
                  onPressed: () {
                    openSDK(context);
                  },
                  icon: const Icon(
                    Icons.login,
                    color: Colors.deepOrange,
                  ))
            ],
          ),
        ));
  }
}