Flutter网络功能增强插件curanetwork_library的使用

Flutter网络功能增强插件curanetwork_library的使用

本项目包含用于Curanet移动应用的样板代码。

功能特性:

  • 后端服务助手类
  • 前端工具组件

后端服务助手类:

  • 账户管理
  • 预约管理
  • 钱包管理
  • 记录管理

Flutter环境:

  • Flutter SDK

使用方法

导入curanetwork_library以访问样板代码:

import 'package:curanetwork_library/*   

后端助手类函数

要使用后端服务,请导入Apis.dart助手类:

import 'package:curanetwork_library/services/Apis.dart';

以下是一些后端助手类函数示例:

  • 注册账户(取EMAIL、MOBILE NO. 和PASSWORD)
  • 激活账户(取TYPE、EMAIL、CODE和MOBILE NO.)
  • 通过邮箱登录(取EMAIL和PASSWORD)
  • 通过手机号登录(取PHONE和PASSWORD)
  • 编辑患者信息(取FIRSTNAME、MIDDLE NAME、LASTNAME、DOB、SEX、ADDRESS、CITY、STATE、SELFY、IDtype、IDnumber、IDverified、WEIGHT、HEIGHT、GENOTYPE、MEDICAL DOCUMENTS、EMERGENCY CONTACT)
  • 编辑医生信息(取FIRSTNAME、MIDDLE NAME、LASTNAME、DOB、SEX、ADDRESS、CITY、STATE、WEIGHT、HEIGHT、GENOTYPE、MEDICAL DOCUMENTS、EMERGENCY CONTACT)
  • 发送验证码(取EMAIL和PHONE)
  • 验证验证码(取TYPE、EMAIL、CODE、REFERENCE)
  • 身份验证(取TYPE和BVN)
  • 获取用户账户详情(GET请求)
  • 忘记密码(取PHONE NUMBER)
  • 登出
  • 预约医生(取DOCTOR ID和DATETIME)
  • 重新预约(取DATETIME)
  • 取消预约(取REASON和MESSAGE)
  • 查看预约(取REASON和MESSAGE)
  • 推荐医生(取BODYPART)
  • 获取医生详情(GET请求)
  • 获取处方(GET请求)
  • 查看钱包详情(GET请求)
  • 存款(取TYPE和AMOUNT)
  • 提款(取AMOUNT和WITHDRAWAL PIN)
  • 添加银行账户(取BANK、ACCOUNT NAME、ACCOUNT PIN、WITHDRAWAL PIN)
  • 查看交易记录(取PHONE和PASSWORD)
  • 使用信用卡支付(取EMAIL和PASSWORD)
  • 使用银行转账支付(取EMAIL和PASSWORD)

前端助手类函数

要使用前端工具,它们都位于utils目录下。例如,如果要使用颜色工具助手类,可以这样导入:

import 'package:curanetwork_library/utils/values/colors.dart';

常量工具

工具通过从{{base_lib}}/utils/values/导入使用:

  • 边框
  • 颜色
  • 参数
  • 圆角
  • 阴影

完整示例代码

以下是完整的示例代码,演示如何使用curanetwork_library插件。

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

import 'package:flutter/services.dart';
import 'package:curanetwork_library/curanetwork_library.dart';
import 'package:curanetwork_library/services/Apis.dart';

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

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

class _MyAppState extends State<MyApp> {
  String _platformVersion = '未知';

  [@override](/user/override)
  void initState() {
    super.initState();
    initPlatformState();
  }

  // 平台消息是异步的,因此我们在异步方法中初始化。
  Future<void> initPlatformState() async {
    String platformVersion;
    // 平台消息可能会失败,所以我们使用try/catch来捕获PlatformException。
    // 我们还处理了消息可能返回null的情况。
    try {
      platformVersion = await CuranetworkLibrary.platformVersion ?? '未知平台版本';
    } on PlatformException {
      platformVersion = '获取平台版本失败。';
    }

    // 如果在异步平台消息还在飞行时小部件从树中被移除,我们想丢弃回复而不是调用setState来更新我们的非存在的外观。
    if (!mounted) return;

    setState(() {
      _platformVersion = platformVersion;
    });
  }

  Apis apis = new Apis("consultant");

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('插件示例应用'),
        ),
        body: Center(
          child: Column(
            children: [
              Text(
                apis.activateAccount("", "", "", "").toString(),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

更多关于Flutter网络功能增强插件curanetwork_library的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter网络功能增强插件curanetwork_library的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


curanetwork_library 是一个用于增强 Flutter 应用网络功能的插件。它提供了许多便捷的功能,如网络请求、缓存管理、错误处理等。以下是如何在 Flutter 项目中使用 curanetwork_library 的基本步骤。

1. 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  curanetwork_library: ^1.0.0  # 使用最新版本

然后,运行 flutter pub get 来安装依赖。

2. 导入库

在你的 Dart 文件中导入 curanetwork_library

import 'package:curanetwork_library/curanetwork_library.dart';

3. 初始化网络库

在使用网络库之前,通常需要对其进行初始化。你可以在 main.dart 中进行初始化。

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  CuranetworkLibrary.initialize(
    baseUrl: 'https://api.example.com',  // 设置基础URL
    enableLogging: true,                // 启用日志记录
    cacheDuration: Duration(minutes: 10), // 设置缓存持续时间
  );
  runApp(MyApp());
}

4. 发起网络请求

使用 CuranetworkLibrary 发起网络请求非常简单。以下是一个 GET 请求的示例:

Future<void> fetchData() async {
  try {
    final response = await CuranetworkLibrary.get('/endpoint');
    if (response.statusCode == 200) {
      print('Response: ${response.data}');
    } else {
      print('Failed to load data');
    }
  } catch (e) {
    print('Error: $e');
  }
}

5. 发起 POST 请求

发起 POST 请求也很简单:

Future<void> postData() async {
  try {
    final response = await CuranetworkLibrary.post(
      '/endpoint',
      data: {'key': 'value'},
    );
    if (response.statusCode == 200) {
      print('Response: ${response.data}');
    } else {
      print('Failed to post data');
    }
  } catch (e) {
    print('Error: $e');
  }
}

6. 使用缓存

curanetwork_library 支持缓存功能,你可以通过 cacheDuration 参数设置缓存时间。

final response = await CuranetworkLibrary.get(
  '/endpoint',
  cacheDuration: Duration(minutes: 5),  // 缓存5分钟
);

7. 处理错误

curanetwork_library 提供了统一的错误处理机制。你可以通过 try-catch 捕获异常并进行处理。

try {
  final response = await CuranetworkLibrary.get('/endpoint');
  print('Response: ${response.data}');
} on NetworkException catch (e) {
  print('Network Error: ${e.message}');
} catch (e) {
  print('Unexpected Error: $e');
}

8. 自定义请求头

你可以通过 headers 参数自定义请求头。

final response = await CuranetworkLibrary.get(
  '/endpoint',
  headers: {'Authorization': 'Bearer your_token'},
);

9. 取消请求

如果你需要取消正在进行的请求,可以使用 CancelToken

final cancelToken = CancelToken();

Future<void> fetchData() async {
  try {
    final response = await CuranetworkLibrary.get(
      '/endpoint',
      cancelToken: cancelToken,
    );
    print('Response: ${response.data}');
  } catch (e) {
    if (CancelToken.isCancel(e)) {
      print('Request cancelled');
    } else {
      print('Error: $e');
    }
  }
}

void cancelRequest() {
  cancelToken.cancel();
}
回到顶部