Flutter认证按钮组件插件auth_button_kit的使用

发布于 1周前 作者 htzhanglong 来自 Flutter

Flutter认证按钮组件插件auth_button_kit的使用

简介

AuthButtonKit 是一个用于Flutter的前端包,专为Android和iOS设计,帮助开发者轻松创建美观的登录按钮。这些按钮特别针对移动设备进行了优化,不建议在电脑屏幕上使用。该插件会自动调整按钮的图标、文本和加载器的颜色,以确保与背景颜色的良好对比。

使用方法

AuthButtonKit 提供了两种主要的使用方式:

  1. 单个按钮 (AuthButton): 用于创建单个认证按钮。

  2. 多个按钮 (AuthMultiButtons): 用于创建一组认证按钮。

示例代码

以下是一个完整的示例代码,展示了如何使用 AuthButtonKit 创建单个按钮、多个按钮以及自定义按钮。

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

void main() {
  runApp(const ExampleApp());
}

class ExampleApp extends StatelessWidget {
  const ExampleApp({Key? key}) : super(key: key);

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      themeMode: ThemeMode.system,
      home: const Example(),
      theme: ThemeData(
        brightness: Brightness.light,
        primarySwatch: Colors.blue,
      ),
      darkTheme: ThemeData(
        brightness: Brightness.dark,
        primarySwatch: Colors.blue,
      ),
    );
  }
}

class Example extends StatefulWidget {
  const Example({Key? key}) : super(key: key);

  [@override](/user/override)
  State<Example> createState() => _ExamplePageState();
}

class _ExamplePageState extends State<Example> {
  Method? brandSelected;

  void toogle(Method brand) {
    setState(() {
      brandSelected = brand;
      Future.delayed(const Duration(seconds: 2), () {
        setState(() {
          brandSelected = null;
        });
      });
    });
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Auth Buttons Example'),
      ),
      body: IgnorePointer(
        ignoring: brandSelected != null,
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            // 单个按钮 ↓
            AuthButton(
              onPressed: (b) => toogle(b),
              brand: Method.tiktok,
              text: 'Continue with {brand}',
              backgroundColor: Theme.of(context).brightness == Brightness.light
                  ? Colors.black
                  : Colors.white,
              shape: RoundedRectangleBorder(
                borderRadius: BorderRadius.circular(30),
                side: const BorderSide(color: Colors.transparent),
              ),
              fontFamily: 'Inter',
              showLoader: brandSelected == Method.tiktok,
            ),
            const SizedBox(height: 20),
            // 多个按钮 ↓
            AuthMultiButtons(
              onPressed: (b) => toogle(b),
              brands: const [
                Method.google,
                Method.apple,
              ],
              text: 'Sign in with {brand}',
              shape: RoundedRectangleBorder(
                borderRadius: BorderRadius.circular(30),
                side: BorderSide(
                    color: Theme.of(context).brightness == Brightness.light
                        ? const Color(0xFFAFBCC7)
                        : Colors.transparent,
                    width: 1.5),
              ),
              fontFamily: 'Inter',
              showLoader: brandSupported.contains(brandSelected),
            ),
            const SizedBox(height: 20),
            // 自定义按钮 ↓
            AuthButton(
              onPressed: (b) => toogle(b),
              brand: Method.custom,
              text: 'Custom',
              textCentering: Centering.independent,
              textColor: const Color(0xFF46c5fb),
              backgroundColor: const Color(0xFF171106),
              shape: RoundedRectangleBorder(
                borderRadius: BorderRadius.circular(8),
                side: BorderSide(
                  color: Theme.of(context).brightness == Brightness.light
                      ? Colors.transparent
                      : const Color(0xFF46c5fb),
                  width: 1.5,
                ),
              ),
              fontFamily: 'Inter',
              showLoader: brandSelected == Method.custom,
              loaderColor: const Color(0xFF46c5fb),
              splashEffect: false,
              customImage: Image.asset('assets/images/Flutter.png'),
              padding: const EdgeInsets.symmetric(horizontal: 100, vertical: 12),
            ),
            const SizedBox(height: 50),
          ],
        ),
      ),
    );
  }
}

更多关于Flutter认证按钮组件插件auth_button_kit的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter认证按钮组件插件auth_button_kit的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter项目中使用auth_button_kit插件来创建一个认证按钮组件的示例代码。auth_button_kit是一个用于创建谷歌、Facebook、Apple等认证按钮的Flutter插件。

首先,确保你已经在pubspec.yaml文件中添加了auth_button_kit依赖:

dependencies:
  flutter:
    sdk: flutter
  auth_button_kit: ^x.y.z  # 请将x.y.z替换为最新版本号

然后运行flutter pub get来获取依赖。

接下来,你可以在你的Flutter应用中使用AuthButton组件。下面是一个简单的示例,展示了如何使用Google和Facebook的认证按钮:

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Auth Button Kit Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Scaffold(
        appBar: AppBar(
          title: Text('Auth Button Kit Demo'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              SizedBox(height: 20),
              GoogleAuthButton(
                onPressed: () {
                  // 处理谷歌认证按钮点击事件
                  print('Google button pressed');
                  // 例如,导航到谷歌认证页面或执行其他逻辑
                },
                darkMode: false,
              ),
              SizedBox(height: 20),
              FacebookAuthButton(
                onPressed: () {
                  // 处理Facebook认证按钮点击事件
                  print('Facebook button pressed');
                  // 例如,导航到Facebook认证页面或执行其他逻辑
                },
                darkMode: false,
              ),
            ],
          ),
        ),
      ),
    );
  }
}

在上面的代码中,我们创建了一个简单的Flutter应用,其中包含一个Google认证按钮和一个Facebook认证按钮。当用户点击这些按钮时,会在控制台中打印相应的消息。在实际应用中,你可以在这些按钮的onPressed回调中处理认证逻辑,比如导航到认证页面或启动认证流程。

AuthButtonKit还提供了其他类型的认证按钮,比如Apple、GitHub等,你可以根据需要添加它们。例如,添加一个Apple认证按钮的代码如下:

AppleAuthButton(
  onPressed: () {
    // 处理Apple认证按钮点击事件
    print('Apple button pressed');
    // 例如,导航到Apple认证页面或执行其他逻辑
  },
  darkMode: false,
),

确保你已经按照auth_button_kit的文档配置了相应的原生代码和依赖项,以支持不同平台的认证功能。例如,对于Google和Facebook认证,你可能需要在iOS和Android项目中分别配置相应的SDK和API密钥。

回到顶部