flutter app 漫威api客户端

2023-10-12 11:50
文章标签 app 客户端 api flutter 漫威

本文主要是介绍flutter app 漫威api客户端,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Android学了一段 自学flutter
数据来源漫威开放api 边学边做的作品

apikey 需要申请,每日限3000次请求
申请网址:https://developer.marvel.com

Github:https://github.com/MaxNeverSleep/marvelAPI-flutter
!新手代码,无法保证可读性,持续更新整理…!

内含接口文档,数据分为六大类
互相关联,比如一个comics里有很多charater

Events\事件
Comics\漫画
Charaters\人物
Series\系列
Creators\创作者
Stories\故事

主页面做成了tabview和viewpager
在这里插入图片描述

tabview里点图片是dialog样式查看图片大图,点击文字区域Expanded进入详情页

在这里插入图片描述

详情页detailpage
下图gif是一个Event事件的详情页
charaters和series相当于android水平分页加载的Listview
comics用了swiper (服务器估计外网,图片加载比较慢)


页面间相互的跳转原本用MaterialPageRoute…卡顿严重
后来用了get
https://pub.flutter-io.cn/packages/get
在这里插入图片描述
点击搜索icon打开搜索框弹出软键盘
当前在哪个tab里就搜索哪个tab的内容
(打开搜索框时切换tabview不能实时切换提示文字"search xxxxxxxx",但是搜索内容会变,因为左右切换页面用setstate会卡顿一下,妥协了,后期看看能不能解决。。)

请求参数

//常用参数 其他详见漫威的接口文档
"apikey":"申请到的公有key"
"ts":"当前时间戳"
"hash":"时间戳+私钥+公钥的md5值"
"offset":"分页值,比如offset20 就从第20个往后取limit个值返回"
"limit":"一次返回的数量"
//"titleStartsWith":"可选参数,搜索用的"//获取时间戳void getTimeStamp() {timeStamp=DateTime.now().millisecondsSinceEpoch.toString();}//获取hashvoid getHash() {var content = new Utf8Encoder().convert(timeStamp+_privateKey+_publicKey);var digest = md5.convert(content);// 这里其实就是 digest.toString()hash= hex.encode(digest.bytes);}//dio get请求拿数据
Future<bool> getSeries() async{getTimeStamp();getHash();Map<String, dynamic> paras = {"apikey":_publicKey,"ts":timeStamp,"hash":hash,"offset":_count,"titleStartsWith":value,};//这里的url请求数据种类不同 url不同 详见文档Dio dio = Dio();final response = await dio.get(_host+_getCharactersUrl,queryParameters: paras,);Map userMap = json.decode(response.toString());series = new SeriesDataEntity.fromJson(userMap);seriesEntityList.addAll(series.data.results);total=series.data.total;if(total==0){setState(() {titleString='Search No Results';});}return false;}

这篇关于flutter app 漫威api客户端的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/195633

相关文章

Flutter打包APK的几种方式小结

《Flutter打包APK的几种方式小结》Flutter打包不同于RN,Flutter可以在AndroidStudio里编写Flutter代码并最终打包为APK,本篇主要阐述涉及到的几种打包方式,通... 目录前言1. android原生打包APK方式2. Flutter通过原生工程打包方式3. Futte

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Android App安装列表获取方法(实践方案)

《AndroidApp安装列表获取方法(实践方案)》文章介绍了Android11及以上版本获取应用列表的方案调整,包括权限配置、白名单配置和action配置三种方式,并提供了相应的Java和Kotl... 目录前言实现方案         方案概述一、 androidManifest 三种配置方式

Redis客户端工具之RedisInsight的下载方式

《Redis客户端工具之RedisInsight的下载方式》RedisInsight是Redis官方提供的图形化客户端工具,下载步骤包括访问Redis官网、选择RedisInsight、下载链接、注册... 目录Redis客户端工具RedisInsight的下载一、点击进入Redis官网二、点击RedisI

Flutter监听当前页面可见与隐藏状态的代码详解

《Flutter监听当前页面可见与隐藏状态的代码详解》文章介绍了如何在Flutter中使用路由观察者来监听应用进入前台或后台状态以及页面的显示和隐藏,并通过代码示例讲解的非常详细,需要的朋友可以参考下... flutter 可以监听 app 进入前台还是后台状态,也可以监听当http://www.cppcn

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

浅析如何使用Swagger生成带权限控制的API文档

《浅析如何使用Swagger生成带权限控制的API文档》当涉及到权限控制时,如何生成既安全又详细的API文档就成了一个关键问题,所以这篇文章小编就来和大家好好聊聊如何用Swagger来生成带有... 目录准备工作配置 Swagger权限控制给 API 加上权限注解查看文档注意事项在咱们的开发工作里,API

一分钟带你上手Python调用DeepSeek的API

《一分钟带你上手Python调用DeepSeek的API》最近DeepSeek非常火,作为一枚对前言技术非常关注的程序员来说,自然都想对接DeepSeek的API来体验一把,下面小编就来为大家介绍一下... 目录前言免费体验API-Key申请首次调用API基本概念最小单元推理模型智能体自定义界面总结前言最