Flutter身份认证或扩展功能插件idkit_extension的使用

Flutter身份认证或扩展功能插件idkit_extension的使用

简介

该插件主要用于在Flutter开发中扩展某些类的常用功能,使开发者能够更方便和简单地进行开发。

当前已扩展类的功能

String

  1. 移除字符串中的所有空格

    /// 移除字符串中的所有空格。
    void removeAllSpaces() {
      const String testStr = ' aa bb  cc dd  ';
      print(testStr.trimAll()); // aabbccdd
    }
    
  2. 将字符串转换为数字

    /// 将字符串转换为数字。
    void toNumber() {
      const String value = '110';
      print(value.toInt()); // 110
      print(value.toDouble()); // 110.0
    }
    
  3. 将字符串转换为集合

    /// 将字符串转换为集合。
    void toCollection() {
      const String testStr = 'abcd';
      print(testStr.toList()); // [a,b,c,d]
    
      const String testStr1 = '1,2,10,21';
      print(testStr1.toList(patternSplit: ',')); // [1,2,10,21]
    }
    
  4. 身份证验证

    /// 身份证验证。
    void toID() {
        const String id1 = '53010219200508011X';
        print(id1.isIDCard()); // true
    
        const String id2 = '53010219200508012X';
        print(id2.isIDCard()); // false
    }
    
  5. 验证字符串是否全为中文字符

    /// 验证字符串是否全为中文字符。
    void toCC() {
        const String txt1 = '我是who';
        print(txt1.isChineseCharacters()); // false
    
        const String txt2 = '我是 大鲨鱼,是吗';
        print(txt2.isChineseCharacters()); // true
    }
    
  6. 验证字符串是否为合格的手机号码

    /// 验证字符串是否为合格的手机号码。
    void toPhone() {
        const String phone = '18801210281';
        print(phone.isPhoneNumber()); // true
    
        const String phone1 = '12801210281';
        print(phone1.isPhoneNumber()); // false
    }
    
  7. 验证字符串是否由0-9组成

    /// 验证字符串是否由0-9组成。
    void toVerifyNumber() {
        const String phone = '18801210281';
        print(phone.isAllNumber()); // true
    
        const String phone1 = '12801210281#';
        print(phone1.isAllNumber()); // false
    }
    
  8. 金额格式化为千分位

    /// 金额格式化为千分位。
    void toAmount() {
        const String amount = '12345';
        print(amount.thousands()); // 12,345
    
        const String amount1 = '12345.087';
        print(amount1.thousands()); // 12,345.087
    }
    

List

  1. 在集合元素之间拼接
    /// 在集合元素之间拼接。
    void toStringFromList() {
        const List<String> list = <String>['T', 'h', 'i', 's'];
        print(list.splicing()); // This
    
        const List<String> list1 = <String>['2021', '11', '17'];
        print(list1.splicing('-')); // 2021-11-17
    }
    

更新内容介绍

1. 添加一个复制集合对象值的方法

/// 添加一个复制集合对象值的方法。
void listCopyValue() {
  final List<int> a = <int>[1, 2, 3];
  final List<int> b = a.copy();
  a.add(4);
  print(a); // [1,2,3,4]
  print(b); // [1,2,3]
}

2. 复制键值对集合的值

/// 复制键值对集合的值。
void mapCopy() {
  final Map<String, String> a = <String, String>{'a': '10', 'b': '20'};
  final Map<String, String> b = a;
  final Map<String, String> c = a.copy();
  a['a'] = '00';
  print(a); // {a: 00, b: 20}
  print(b); // {a: 00, b: 20}
  print(c); // {a: 10, b: 20}
}

3. 从另一个键值对集合获取新的键值对

/// 从另一个键值对集合获取新的键值对。
void mapCopyMap() {
  final Map<String, String> a = <String, String>{'a': '10'};
  final Map<String, String> b = <String, String>{
    'a': '00',
    'b': '10',
    'c': '20'
  };
  final Map<String, String> c = a.copyFrom(b);
  print(c); // {a: 10, b: 10, c: 20}
}

完整示例Demo

以下是一个完整的示例Demo,展示了如何使用idkit_extension插件中的各种功能:

import 'package:idkit_extension/idkit_extension.dart';

void main() {
  removeAllSpaces();
  toNumber();
  toCollection();
  toID();
  toCC();
  toPhone();
  toVerifyNumber();
  toAmount();
  toStringFromList();
  formStringToKeepPoint();
  formNumToKeepPoint();
  listCopyValue();
  mapCopy();
  getVhPiece();
}

/// 1. 移除字符串中的所有空格。
void removeAllSpaces() {
  const String testStr = ' aa bb  cc dd  ';
  print(testStr.trimAll());
}

/// 2. 将字符串转换为数字。
void toNumber() {
  const String value = '110';
  print(value.toInt()); // 110
  print(value.toDouble()); // 110.0
}

/// 3. 将字符串转换为集合。
void toCollection() {
  const String testStr = 'abcd';
  print(testStr.toList()); // [a,b,c,d]

  const String testStr1 = '1,2,10,21';
  print(testStr1.toList(patternSplit: ',')); // [1,2,10,21]
}

/// 4. 身份证验证。
void toID() {
  const String id1 = '53010219200508011X';
  print(id1.isIDCard()); // true

  const String id2 = '53010219200508012X';
  print(id2.isIDCard()); // false
}

/// 5. 验证字符串是否全为中文字符。
void toCC() {
  const String txt1 = '我是who';
  print(txt1.isChineseCharacters()); // false

  const String txt2 = '我是 大鲨鱼,是吗';
  print(txt2.isChineseCharacters()); // true
}

/// 6. 验证字符串是否为合格的手机号码。
void toPhone() {
  const String phone = '18801210281';
  print(phone.isPhoneNumber()); // true

  const String phone1 = '12801210281';
  print(phone1.isPhoneNumber()); // false
}

/// 7. 验证字符串是否由0-9组成。
void toVerifyNumber() {
  const String phone = '18801210281';
  print(phone.isAllNumber()); // true

  const String phone1 = '12801210281#';
  print(phone1.isAllNumber()); // false
}

/// 8. 金额格式化为千分位。
void toAmount() {
  const String amount = '12345';
  print(amount.thousands()); // 12,345

  const String amount1 = '12345.087';
  print(amount1.thousands()); // 12,345.087
}

/// 9. 在集合元素之间拼接。
void toStringFromList() {
  const List<String> list = <String>['T', 'h', 'i', 's'];
  print(list.splicing()); // This

  const List<String> list1 = <String>['2021', '11', '17'];
  print(list1.splicing('-')); // 2021-11-17
}

/// 11. 将数字字符串转换为具有指定小数位数的数字
void formStringToKeepPoint() {
  final String a = '111.03'.keepFractionDigits(0);
  print(a);

  final String b = '111.03'.keepFractionDigits(1);
  print(b);

  final String c = '111.03'.keepFractionDigits(2);
  print(c);

  final String d = '111.03'.keepFractionDigits(3);
  print(d);

  final String e = '111'.keepFractionDigits(2);
  print(e);

  final String f = '111.034'.keepFractionDigits(2);
  print(f);

  final String f1 = '111.036'.keepFractionDigits(2);
  print(f1);

  final String f2 = '111.036'.keepFractionDigits(2, round: false);
  print(f2);

  final String g = '111.996'.keepFractionDigits(2);
  print(g);

  final String g1 = '111.994'.keepFractionDigits(2);
  print(g1);

  final String h = 'xx23343'.keepFractionDigits(3);
  print(h);
}

/// 12. 将数字转换为具有指定小数位数的数字
void formNumToKeepPoint() {
  final String a = 111.03.keepFractionDigits(0);
  print(a);

  final String b = 111.03.keepFractionDigits(1);
  print(b);

  final String c = 111.03.keepFractionDigits(2);
  print(c);

  final String d = 111.03.keepFractionDigits(3);
  print(d);

  final String e = 111.keepFractionDigits(2);
  print(e);

  final String f = 111.034.keepFractionDigits(2);
  print(f);

  final String f1 = 111.036.keepFractionDigits(2);
  print(f1);

  final String f2 = 111.036.keepFractionDigits(2, round: false);
  print(f2);

  final String g = 111.996.keepFractionDigits(2);
  print(g);

  final String g1 = 111.994.keepFractionDigits(2);
  print(g1);
}

/// 12. 复制集合对象的值
void listCopyValue() {
  final List<int> a = <int>[1, 2, 3];
  final List<int> b = a.copy();
  a.add(4);
  print(a); // [1,2,3,4]
  print(b); // [1,2,3]
}

/// 13. 复制键值对集合的值
void mapCopy() {
  final Map<String, String> a = <String, String>{'a': '10', 'b': '20'};
  final Map<String, String> b = a;
  final Map<String, String> c = a.copy();
  a['a'] = '00';
  print(a); // {a: 00, b: 20}
  print(b); // {a: 00, b: 20}
  print(c); // {a: 10, b: 20}
}

/// 14. 从另一个键值对集合获取新的键值对
void mapCopyMap() {
  final Map<String, String> a = <String, String>{'a': '10'};
  final Map<String, String> b = <String, String>{
    'a': '00',
    'b': '10',
    'c': '20'
  };
  final Map<String, String> c = a.copyFrom(b);
  print(c); // {a: 10, b: 10, c: 20}
}

/// 15. 获取水平或垂直方向上的块
void getVhPiece() {
  const int aint = 10;
  aint.hPiece;
  aint.vPiece;

  const double adouble = 10;
  adouble.hPiece;
  adouble.vPiece;

  const num anum = 10;
  anum.hPiece;
  anum.vPiece;
}

更多关于Flutter身份认证或扩展功能插件idkit_extension的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter身份认证或扩展功能插件idkit_extension的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


idkit_extension 是一个用于 Flutter 应用的身份认证或扩展功能的插件。虽然我无法找到关于 idkit_extension 的具体文档或详细信息(因为它可能是一个自定义或第三方插件),但我可以为你提供一个通用的指南,帮助你理解如何使用类似的插件,并提供一些常见的身份认证和扩展功能的实现思路。

1. 安装插件

首先,你需要在 pubspec.yaml 文件中添加插件的依赖项。假设 idkit_extension 已经在 pub.dev 上发布,你可以像这样添加它:

dependencies:
  flutter:
    sdk: flutter
  idkit_extension: ^1.0.0  # 替换为实际的版本号

然后运行 flutter pub get 来安装插件。

2. 导入插件

在你的 Dart 文件中导入插件:

import 'package:idkit_extension/idkit_extension.dart';

3. 初始化插件

通常,插件需要在应用启动时进行初始化。你可以在 main.dart 文件中进行初始化:

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await IdkitExtension.initialize();  // 假设插件有一个initialize方法
  runApp(MyApp());
}

4. 使用插件进行身份认证

假设 idkit_extension 提供了身份认证功能,你可以使用它来进行用户登录或注册。以下是一个简单的示例:

class LoginPage extends StatelessWidget {
  final _emailController = TextEditingController();
  final _passwordController = TextEditingController();

  Future<void> _login() async {
    try {
      final user = await IdkitExtension.login(
        email: _emailController.text,
        password: _passwordController.text,
      );
      print('Login successful: ${user.id}');
    } catch (e) {
      print('Login failed: $e');
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('Login')),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          children: [
            TextField(
              controller: _emailController,
              decoration: InputDecoration(labelText: 'Email'),
            ),
            TextField(
              controller: _passwordController,
              decoration: InputDecoration(labelText: 'Password'),
              obscureText: true,
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: _login,
              child: Text('Login'),
            ),
          ],
        ),
      ),
    );
  }
}

5. 使用插件进行扩展功能

如果 idkit_extension 提供了其他扩展功能,例如文件存储、通知等,你可以根据插件的文档或 API 参考来使用这些功能。以下是一个假设的示例:

Future<void> _uploadFile() async {
  try {
    final fileUrl = await IdkitExtension.uploadFile(
      filePath: '/path/to/file.txt',
      bucketName: 'my-bucket',
    );
    print('File uploaded: $fileUrl');
  } catch (e) {
    print('File upload failed: $e');
  }
}

6. 处理插件的事件或回调

某些插件可能会通过事件或回调来通知应用程序某些状态的变化。你可以监听这些事件来更新 UI 或执行其他操作:

IdkitExtension.onAuthStateChanged.listen((user) {
  if (user != null) {
    print('User is logged in: ${user.id}');
  } else {
    print('User is logged out');
  }
});

7. 错误处理

在使用插件时,务必处理可能出现的错误。你可以使用 try-catch 块来捕获异常,并根据需要向用户显示错误信息。

try {
  final result = await IdkitExtension.someMethod();
} catch (e) {
  print('Error: $e');
  // 显示错误信息给用户
}
回到顶部