void asyncRequestNetwork<T>(Method method, {@required String url, bool isShow : true, bool isClose: true, Function(T t) onSuccess, Function(List<T> list) onSuccessList, Function(int code, String msg) onError,
dynamic params, Map<String, dynamic> queryParameters, CancelToken cancelToken, Options options, bool isList : false}){
if (isShow) view.showProgress();
DioUtils.instance.asyncRequestNetwork<T>(method, url,
params: params,
queryParameters: queryParameters,
options: options,
cancelToken: cancelToken?? _cancelToken,
isList: isList,
onSuccess: (data){
if (isClose) view.closeProgress();
if (onSuccess != null) {
onSuccess(data);
onSuccessList: (data){
if (isClose) view.closeProgress();
if (onSuccessList != null) {
onSuccessList(data);
onError: (code, msg){
_onError(code, msg, onError);
_onError(int code, String msg, Function(int code, String msg) onError){
view.closeProgress();
if (code != ExceptionHandle.cancel_error){
view.showToast(msg);
if (onError != null && view.getContext() != null) {
onError(code, msg);
上传文件具体实现如下:void uploadPhoto(File file) async{ String path = file.path; var name = path.substring(path.lastIndexOf("/") + 1, path.length); String imageType = name.substring(name.lastIndexO...
上一篇讲解了截图和保存图片的方法,这篇博客将对图片转base64和上传sentry,以及动态获取本地app版本号的方法做讲解。
首先来看下代码部分:
对图片做base64处理:
Future<String> base64Img() async {
try {
RenderRepaintBoundary boundary =
imgKey.currentContext.findRenderObject();
var image = await boundary.toIm
原生app转换成flutter for web后,发现用image库的decodeimage函数在网页上慢到无法忍受,通过查资料了解用网页的canvas直接加载处理。以下是图片选择/拍照,压缩后转到base64的主要代码,希望能帮到有同样困惑的小伙伴们。
import 'package:image_picker/image_picker.dart';
import 'package:image_picker_for_web/image_picker_for_web.dart';
///摄像...
在上传文件数组的时候,后端总是收不到文件数组。检查本地数据发现没有问题。
问题出现在FormData对文件的处理上,如果直接用FormData.map处理数据类似下面这样,对于单张/单个文件的上传是没有影响的。
Map<String, dynamic> formMap = {
'nickname': nickname,
'motto': motto,
formMap['avatar'] = Mul
图片有多条,法人信息,授权信息,等 有必填图片,有非必填图片,文件大小限制为2MB.
必填的图片未上传,则本次均不录入数据库.
图片要求在一次确认后,审核人员才能显示.
需要进行相关得记录,用于后续查看.
为了满足以上实现,有两种实现方式
单个批量接口 所有的文件通过一个接口批量上传.
文件单条上传+确认上传.
文件大小在2MB,如果批
之前发过一篇上传多张图片的博客,那个是自己实现的,但是是一张一张上传最后页面上显示出来所有上传的图片,这篇文章介绍一下一次性选择多张图片并上传
首先引入依赖:multi_image_picker,这个插件可以选择多张图片,插件地址https://pub.flutter-io.cn/packages/multi_image_picker
然后画个小页面
import 'package:flutter/material.dart';
import 'dart:io';
//ByteData这里需要引入d
借助Dio,将其封装为一个工具类(dio_utils.dart)
封装请求服务(service_api.dart)
根据请求参数封装 请求model (RequireModel)
根据返回数据类型封装返回Entitiy(list_entity.dart。因为返回的data中是一个list,如果是一个string,直接在entiy中解析好,上层进行调用即可)
data中的单个对象进行封装(PersionEntity),方便解析
总的来说封装了这么多就是为了后期使用方便。
如果您在 Flutter 项目的 `android` 目录中找不到 `include_flutter.groovy` 文件,可以尝试以下解决方案:
1. 确保您的 Flutter 版本足够新。`include_flutter.groovy` 文件是在 Flutter 1.12 版本之后添加的,如果您使用的是更早的版本,可能会导致找不到这个文件。
2. 如果您在使用 Flutter Module(即在原生 Android 项目中使用 Flutter),请确保您已在 Android 项目的根目录下运行过 `flutter create .` 命令。这会在 Android 项目中创建 `flutter_module` 目录,并在其中生成 `include_flutter.groovy` 文件。
3. 如果您在使用 Flutter Plugin(即在 Flutter 项目中使用原生 Android 插件),请确保您已在 Flutter 项目的根目录下运行过 `flutter create .` 命令。这会在 Flutter 项目中创建 `android` 目录,并在其中生成 `include_flutter.groovy` 文件。
如果以上解决方案都无法帮助您解决问题,可能是您的 Flutter 安装有问题。建议您尝试重新安装 Flutter,或者提交 issue 到 Flutter 官方问题跟踪系统中寻求帮助。
Android webview解决JS报错chromium: [INFO:CONSOLE(1)] "Uncaught TypeError: Cannot read property 'getItem'
20725
解决在Android P上的提醒弹窗 (Detected problems with API compatibility(visit g.co/dev/appcompat for more info)
15953
Android解决gradle "Error:Cause: unable to find valid certification path to requested target"
14682