Flutter年龄识别插件flutter_agify的使用

Flutter年龄识别插件flutter_agify的使用

flutter_agify

一个可以从Agify.io API获取数据的Flutter插件,可以预测你的年龄!

注意: 我想明确表示,**我不拥有Agify.io API,并且该插件的唯一目的是使使用Agify.io API变得简单。

API网站

这里是Agify.io的官方API网站:

如何使用

flutter_agify提供了4个函数来从Agify.io API响应中获取信息。它们分别是:

getAge() // 获取单个名字的年龄数据。`name`参数是必需的,`apiKey`参数是可选的。
getAges() // 获取多个名字的年龄数据。`names`参数是必需的,`apiKey`参数是可选的。
getAgeWithCountry() // 获取单个名字的年龄数据并提供国家。`name`和`country`参数是必需的,`apiKey`参数是可选的。
getAgesWithCountry() // 获取多个名字的年龄数据并提供国家。`names`和`country`参数是必需的,`apiKey`参数是可选的。
  • 如果你需要检查超过1000个名字/天,你需要获得一个API密钥。要获取API密钥,请访问https://store.agify.io/
  • 注意: 如果你打算使用getAgeWithCountry()getAgesWithCountry()请记住Agify.io API遵循ISO 3166-1 alpha-2格式的国家代码。有关所有支持的国家列表,请参阅https://agify.io/our-data

返回类型

  • getAge()返回一个Map,形式如下:{"Name": _name, "Age": age, "Count": count},如果API响应错误,则会抛出异常。

  • getAges()返回jsonDecode(apiResponse.body),这是一个包含每个提供的名字的年龄数据的List,如果API响应错误,则会抛出异常。

  • getAgeWithCountry()返回一个Map,形式如下:{"Name": _name, "Age": age, "Count": count, "Country": _country},如果API响应错误,则会抛出异常。

  • getAgesWithCountry()返回jsonDecode(apiResponse.body),这是一个包含每个提供的名字的年龄数据的List,如果API响应错误,则会抛出异常。

代码示例

以下是一个使用getAge()的例子:

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

  @override
  State<Homepage> createState() => _HomepageState();
}

class _HomepageState extends State<Homepage> {
  Future<dynamic>? target;

  @override
  void initState() {
    target = getAge(name: "Peter");
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        body: Center(
      child: FutureBuilder<dynamic>(
          future: target,
          builder: (context, snapshot) {
            if (snapshot.connectionState == ConnectionState.done) {
              if (snapshot.hasError) {
                return Text(
                  '${snapshot.error} 发生了',
                  style: TextStyle(fontSize: 19, color: Colors.white),
                );
              } else if (snapshot.hasData) {
                final data = snapshot.data;
                return Container(
                  alignment: Alignment.center,
                  height: 400,
                  width: 600,
                  color: Color(0xFF12202F),
                  child: Text(
                    "预测的 ${data["Name"]} 的年龄是 ${data["Age"]}",
                    style: TextStyle(fontSize: 19, color: Colors.white),
                  ),
                );
              }
            }
            return SizedBox(
              height: 50,
              width: 50,
              child: CircularProgressIndicator(),
            );
          }),
    ));
  }
}

输出

以下是上述代码的输出结果:

使用方法

要使用此包,请在pubspec.yaml文件中添加依赖项:

dependencies:
  flutter:
    sdk: flutter
  flutter_agify:

更多关于Flutter年龄识别插件flutter_agify的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter年龄识别插件flutter_agify的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


flutter_agify 是一个用于根据姓名预测年龄的 Flutter 插件。它基于 Agify.io API,该 API 通过分析全球范围内的姓名数据来预测一个人的年龄。虽然这个预测并不总是准确的,但它可以作为一个有趣的工具来估计年龄。

以下是如何在 Flutter 项目中使用 flutter_agify 插件的步骤:

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 flutter_agify 插件的依赖。

dependencies:
  flutter:
    sdk: flutter
  flutter_agify: ^0.0.1  # 请查看最新的版本号

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

2. 导入包

在需要使用 flutter_agify 的 Dart 文件中导入包:

import 'package:flutter_agify/flutter_agify.dart';

3. 使用 Agify 插件

你可以使用 Agify 类来获取预测的年龄。以下是一个简单的示例:

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

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: AgePredictor(),
    );
  }
}

class AgePredictor extends StatefulWidget {
  [@override](/user/override)
  _AgePredictorState createState() => _AgePredictorState();
}

class _AgePredictorState extends State<AgePredictor> {
  String _name = '';
  int _age = 0;

  Future<void> _predictAge() async {
    try {
      final agify = Agify();
      final age = await agify.getAge(_name);
      setState(() {
        _age = age;
      });
    } catch (e) {
      print('Error: $e');
    }
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Age Predictor'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          children: [
            TextField(
              decoration: InputDecoration(
                labelText: 'Enter a name',
              ),
              onChanged: (value) {
                setState(() {
                  _name = value;
                });
              },
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: _predictAge,
              child: Text('Predict Age'),
            ),
            SizedBox(height: 20),
            Text('Predicted Age: $_age'),
          ],
        ),
      ),
    );
  }
}
回到顶部