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

相关文章

SpringBoot监控API请求耗时的6中解决解决方案

《SpringBoot监控API请求耗时的6中解决解决方案》本文介绍SpringBoot中记录API请求耗时的6种方案,包括手动埋点、AOP切面、拦截器、Filter、事件监听、Micrometer+... 目录1. 简介2.实战案例2.1 手动记录2.2 自定义AOP记录2.3 拦截器技术2.4 使用Fi

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri

HTML5 getUserMedia API网页录音实现指南示例小结

《HTML5getUserMediaAPI网页录音实现指南示例小结》本教程将指导你如何利用这一API,结合WebAudioAPI,实现网页录音功能,从获取音频流到处理和保存录音,整个过程将逐步... 目录1. html5 getUserMedia API简介1.1 API概念与历史1.2 功能与优势1.3

MYSQL查询结果实现发送给客户端

《MYSQL查询结果实现发送给客户端》:本文主要介绍MYSQL查询结果实现发送给客户端方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql取数据和发数据的流程(边读边发)Sending to clientSending DataLRU(Least Rec

Python FastMCP构建MCP服务端与客户端的详细步骤

《PythonFastMCP构建MCP服务端与客户端的详细步骤》MCP(Multi-ClientProtocol)是一种用于构建可扩展服务的通信协议框架,本文将使用FastMCP搭建一个支持St... 目录简介环境准备服务端实现(server.py)客户端实现(client.py)运行效果扩展方向常见问题结

使用Python实现调用API获取图片存储到本地的方法

《使用Python实现调用API获取图片存储到本地的方法》开发一个自动化工具,用于从JSON数据源中提取图像ID,通过调用指定API获取未经压缩的原始图像文件,并确保下载结果与Postman等工具直接... 目录使用python实现调用API获取图片存储到本地1、项目概述2、核心功能3、环境准备4、代码实现

C#使用MQTTnet实现服务端与客户端的通讯的示例

《C#使用MQTTnet实现服务端与客户端的通讯的示例》本文主要介绍了C#使用MQTTnet实现服务端与客户端的通讯的示例,包括协议特性、连接管理、QoS机制和安全策略,具有一定的参考价值,感兴趣的可... 目录一、MQTT 协议简介二、MQTT 协议核心特性三、MQTTNET 库的核心功能四、服务端(BR

无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案

《无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案》:本文主要介绍了无法启动此程序,详细内容请阅读本文,希望能对你有所帮助... 在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是"api-ms-win-core-path-l1-1-0.dll丢失

python通过curl实现访问deepseek的API

《python通过curl实现访问deepseek的API》这篇文章主要为大家详细介绍了python如何通过curl实现访问deepseek的API,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编... API申请和充值下面是deepeek的API网站https://platform.deepsee

SpringBoot快速搭建TCP服务端和客户端全过程

《SpringBoot快速搭建TCP服务端和客户端全过程》:本文主要介绍SpringBoot快速搭建TCP服务端和客户端全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录TCPServerTCPClient总结由于工作需要,研究了SpringBoot搭建TCP通信的过程