add_to_google_wallet 0.0.5 copy "add_to_google_wallet: ^0.0.5" to clipboard
add_to_google_wallet: ^0.0.5 copied to clipboard

PlatformAndroid

A Flutter plugin that provides the Add To Google Wallet Button.

example/lib/main.dart

import 'package:add_to_google_wallet/widgets/add_to_google_wallet_button.dart';
import 'package:flutter/material.dart';
import 'package:uuid/uuid.dart';

void main() => runApp(const MaterialApp(home: MyApp()));

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

  @override
  Widget build(BuildContext context) => Scaffold(
        appBar: AppBar(title: const Text('Plugin example app')),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              AddToGoogleWalletButton(
                pass: _examplePass,
                onError: (Object error) => _onError(context, error),
                onSuccess: () => _onSuccess(context),
                onCanceled: () => _onCanceled(context),
                // Unsupported locale. Button will display English version.
                locale: const Locale('und'),
              ),
              const SizedBox(height: 8.0),
              AddToGoogleWalletButton(
                pass: _examplePass,
                onError: (Object error) => _onError(context, error),
                onSuccess: () => _onSuccess(context),
                onCanceled: () => _onCanceled(context),
                locale: const Locale.fromSubtags(
                  languageCode: 'fr',
                  countryCode: 'FR',
                ),
              ),
              const SizedBox(height: 8.0),
              AddToGoogleWalletButton(
                pass: _examplePass,
                onError: (Object error) => _onError(context, error),
                onSuccess: () => _onSuccess(context),
                onCanceled: () => _onCanceled(context),
              ),
            ],
          ),
        ),
      );

  void _onError(BuildContext context, Object error) => ScaffoldMessenger.of(context).showSnackBar(
        SnackBar(
          backgroundColor: Colors.red,
          content: Text(error.toString()),
        ),
      );

  void _onSuccess(BuildContext context) => ScaffoldMessenger.of(context).showSnackBar(
        const SnackBar(
          backgroundColor: Colors.green,
          content: Text('Pass has been successfully added to the Google Wallet.'),
        ),
      );

  void _onCanceled(BuildContext context) => ScaffoldMessenger.of(context).showSnackBar(
        const SnackBar(
          backgroundColor: Colors.yellow,
          content: Text('Adding a pass has been canceled.'),
        ),
      );
}

final String _passId = const Uuid().v4();
const String _passClass = 'example';
const String _issuerId = '3333000000000000000';
const String _issuerEmail = 'example@example.com';

final String _examplePass = """
    {
      "iss": "$_issuerEmail",
      "aud": "google",
      "typ": "savetowallet",
      "origins": [],
      "payload": {
        "genericObjects": [
          {
            "id": "$_issuerId.$_passId",
            "classId": "$_issuerId.$_passClass",
            "genericType": "GENERIC_TYPE_UNSPECIFIED",
            "hexBackgroundColor": "#4285f4",
            "logo": {
              "sourceUri": {
                "uri": "https://storage.googleapis.com/wallet-lab-tools-codelab-artifacts-public/pass_google_logo.jpg"
              }
            },
            "cardTitle": {
              "defaultValue": {
                "language": "en",
                "value": "Google I/O '22 [DEMO ONLY]"
              }
            },
            "subheader": {
              "defaultValue": {
                "language": "en",
                "value": "Attendee"
              }
            },
            "header": {
              "defaultValue": {
                "language": "en",
                "value": "Alex McJacobs"
              }
            },
            "barcode": {
              "type": "QR_CODE",
              "value": "$_passId"
            },
            "heroImage": {
              "sourceUri": {
                "uri": "https://storage.googleapis.com/wallet-lab-tools-codelab-artifacts-public/google-io-hero-demo-only.jpg"
              }
            },
            "textModulesData": [
              {
                "header": "POINTS",
                "body": "1234",
                "id": "points"
              }
            ]
          }
        ]
      }
    }
""";