首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Flutter实战 | 从 0 搭建「网易云音乐」APP(一、创建项目、添加插件、通用代码)

shared_preferences[2] 本地存储数据,持久化 dio[3] 网络请求 flutter_screenutil[4] 屏幕适配 fluro[5] 路由管理 common_utils[6...网络请求失败组件 其中 widget_future_builder.dart 在我上一篇文章:Flutter | 定义一个通用多功能网络请求 Widget 已经说过了,这里就不多说了。...在这个文件,我们要进行 Dio 初始化和网络请求封装。 在查看 API 文档时候,发现登录状态是由 Cookie 来管理。 所以我要使用 cookie 插件来满足需求。.../shared_preferences [3] dio: https://pub.dev/packages/dio [4] flutter_screenutil: https://pub.dev/packages...- Flutter dialog (2) - showGeneralDialog使用

2K00
您找到你想要的搜索结果了吗?
是的
没有找到

基于 Flutter 定制一套快速开发框架(一)

网络请求:考虑使用dio包,因为它提供了更多功能,如拦截器、全局配置、FormData、请求取消等,基本覆盖了网络请求常见功能,在拦截器我们可以实现很多统一处理业务逻辑,嗯,很棒。...主题切换:打算使用FlutterThemeData来定义不同主题,结合全局状态广利,可以确保主题切换可以即时反映在应用UI上。...或者使用LayoutBuilder和FractionallySizedBox等布局小部件来创建响应式布局,也可以考虑使用flutter_screenutil等包来简化响应式设计实现。...数据持久化:考虑持久化方案,如shared_preferences、hive、sqflite等,设计数据模型和存储API,以便于数据读取和写入,最好是统一 Storage 抽象,来屏蔽掉这些持久化细节...网络请求模块我决定使用dio库来处理网络请求:import 'package:dio/dio.dart';class ApiService { late Dio _dio; ApiService()

36620

Flutter Notes | 我用到一些插件整理

回顾前几周刚入坑 Flutter,真的是贼难受,最近渐渐处于稳定环境了,正好总结下期间使用感觉不错插件。...插件大汇总 好工具,总会让人事半功倍,一起来看~ 每个人认知不一样,有可能我觉得不错,你觉得不咋滴,所以这里针对封装就不推荐了,自行搜索~ 1、dio:网络请求神器 插件地址: pub.flutter-io.cn.../packages/fl… GitHub 地址: github.com/theyakka/fl… 3、shared_preferences:本地持久化存储(存储简单信息) 插件地址: pub.dev/packages.../sh… GitHub 地址: github.com/flutter/plu… 4、Permission_handler:权限管理 在 Android 最初实现动态权限管理,真的头疼,不过现在 Flutter.../cr… GitHub 地址: github.com/dart-lang/c… 10、Fluwx:微信支付、分享 这个插件提供单独分享版本,按需使用即可。

54741

Flutter 下载器 | flutter_download_manager源码解析

像放出去风筝,想收回可以收回。怎么收回呢?通过线,这条线作用就是 cancelToken。而风筝就像是一个个任务请求,放风筝的人就是 Manager,放风筝这件事就是 Task。...查询任务管理表任务状态并决定是否有资格真正添加到请求列表。 已完成任务:3 天前已经摸过了一次鱼,一周最多摸鱼一次,直接返回任务结果,否掉这种不切实际想法,没脸加入请求列表。...此时看你怎么处理了,若 50%砖还在,你可以继续搬,将任务添加到请求列表,从 50%开始直到完成。若没搬砖堆得横七竖八不想继续码,可删除任务管理表记录,一次新任务添加请求列表和管理列表。...新规划任务:任务管理列表无该记录情况,新任务重新添加到请求列表。 循环执行请求列表各任务并适时更新管理列表状态,直至请求列表为空。...通过上述恢复实现与如下下载逻辑归纳整个暂停实现流程: 恢复下载 ③④⑤ 会赋予暂停 url 新 CancelToken 重新添加到请求列表,并开启请求列表自遍历执行。

99320

Flutter之网络请求封装

应用开发,网络请求几乎是必不可少功能,本文将介绍如何通过对 dio 进行二次封装一步一步实现网络请求封装,以便于在项目中方便快捷使用网络请求。...请求数据转换 除了返回数据解析,实际开发过程还会遇到对请求参数处理,比如请求参数为 json 数据,但是代码里为了方便处理使用实体类,request data 参数可能传入是一个实体类实例..., http 状态码非 200 开头 dio 会抛出 DioError 错误,但此时需要错误信息为 response 错误信息,所以这里需要先解析 response 数据获取错误信息。...比如登录后需要给所有请求添加统一 Header 携带 token 信息就可以通过拦截器实现。...添加拦截器即可: _dio.interceptors.add(TokenInterceptor()); 日志打印 开发过程为了方便调试经常需要打印请求返回日志,可以使用自定义拦截器实现,也可以使用第三方实现日志打印拦截器

7.2K11

Flutter 网络请求封装之Dio(Cookie管理、添加拦截器、下载文件、异常处理、取消请求等)

默认是 `json`, responseType: ResponseType.json, ); dio = new Dio(options); } 配置一目了然,但是有一个潜在问题...,细心同学可能会发现,baseUrl参数是固定,在实际开发请求两个及以上域名地址是有很大可能,所以我们怎么动态更换baseUrl呢?.../* * 取消请求 * * 同一个cancel token 可以用于多个请求一个cancel token取消,所有使用该cancel token请求都会被取消。...对于自签名证书,我们也可以将其添加到本地证书信任链,这样证书验证就会自动通过,而不会再走到badCertificateCallback回调: (dio.httpClientAdapter as...PEM或PKCS12,如果证书格式为PKCS12,则需将证书密码传入,这样则会在代码暴露证书密码,所以客户端证书校验不建议使用PKCS12格式证书。

6.5K21

从零开始Flutter之旅: MethodChannel

那么要实现上面这个场景,Flutter就需要与原生客户端进行通信,拿到返回code,然后再到Flutter中进行oauth授权登录请求。...在使用之前需要在pubspec.yaml添加依赖 dependencies: flutter: sdk: flutter http: 0.12.0+4 dio: 3.0.7 shared_preferences...来执行对应逻辑 因为我们需要返回code,只需通过resultsuccess方法,将获取到code传递过去即可。之后Flutter就能够获取到该。...IOS 在AppDelegate.swift定义一个methodChannel,使用约定好name。...最后code传回到Flutter之后,我们再将code进行请求获取到对应token。 到这里整个授权认证就完成了,之后我们就可以通过token来请求用户相关接口,获取对应数据。

98950

Fluttershared_preferences 本地存储 ( 简介 | 安装 shared_preferences 插件 | 使用 shared_preferences 流程 )

文章目录 一、shared_preferences 本地存储插件简介 二、安装 shared_preferences 插件 三、使用 shared_preferences 流程 四、完整代码示例 五、相关资源...一、shared_preferences 本地存储插件简介 ---- shared_preferencesFlutter 提供 本地数据存取 插件 ; 在不同平台 , 基于不同机制开发 ,...Get 按钮 , 下载插件包到本工程 ; 最后 , 在 Dart 代码中导入如下代码 , 即可使用 shared_preferences ; import 'package:shared_preferences.../shared_preferences.dart'; 三、使用 shared_preferences 流程 ---- 在完成了上述安装 shared_preferences 插件之后 , 才能开始使用...存储键值对数值 ; /// 设置 prefs.setInt('counter', counter); /// 获取值 final counter = prefs.getInt('counter'

1.2K10

Flutter基础之Dart语言入门:Future异步使用

Flutter开发离不开异步处理,dioFlutter常用第三方网络请求插件,这篇就带大家来了解下Flutter异步和dio使用” Dart类库有非常多返回Future 或者 Stream...Future所有API返回仍然是一个Future对象,所以可以很方便进行链式调用。...(17666): hello 1 I/flutter (17666): Error I/flutter (17666): hello 3 04 — 网络请求 Future应用 异步最应用在网络请求...,Flutter同样需要异步请求获取数据,dioFlutter常用网络请求插件,地址https://pub.dev/packages/dio。...同样项目中引入改插件,直接在pubspec.yaml文件添加依赖 在使用地方引入: 下面是项目中封装请求通用类BaseRepository /// 网络请求 class BaseRepository

1.5K20

Flutter本地存储

shared_preferences就是其中一个,打开shared_preferences插件对象页面即可看到插件相关信息 现在我们需要在项目里面引入shared_preferences插件 第三发插件引用...flutter packages get来同步第三方插件 在自己Dart文件引入插件即可正常使用了 import ‘package:shared_preferences/shared_preferences.dart...getString(key) key就是我们刚才存入,我们通过这个可以在本地查找到我们存入对象并返回。...我们使用获得Future对象调用then()方法,get方法执行完后就会自动触发then()方法里面的操作弹出showSnackBar。...:path_provider/path_provider.dart’; 即可使用Flutter文件存储 在path_provider中有三个获取文件路径方法: getTemporaryDirectory

4.8K30

Flutter 3.7 新特性:介绍后台isolate通道

在我帮助谷歌其他团队使用 Flutter 过程,随着产品演进,最终会不可避免地遇到 root isolate 瓶颈。 因此,我们需要确保在框架优化,并为开发者提供工具使其在必要做更少事。...在此示例,后台 isolate 至少使用了 3 个插件,一个用于从 Firebase Cloud Storage 请求数据;接着保存到手机相册,保存完毕发送本地通知告诉用户。...快速开始 下面是一个使用新 API 在后台 isolate 调用 shared_preferences 插件示例: import 'package:flutter/services.dart'; import...SharedPreferences.getInstance(); print(sharedPreferences.getBool(‘isDebug’)); } 技术细节 下面是平台通道工作原理概述: 平台通道被调用产生结果将通过硬编码转到...这是令我惊讶,为了在引擎销毁关闭平台通道,我们应该知道与引擎关联后台 isolate,否则后台 isolate 可能与正在销毁引擎通信,这样做效果可以在最终 API 中看到,必须使用 RootIsolateToken

4.1K40

《深入浅出Dart》Flutter网络请求

现代JavaScript高级小册 深入浅出Dart 现代TypeScript高级小册 Flutter网络请求 网络请求是移动应用开发中常见任务之一,Flutter提供了强大且易于使用网络请求库,使得我们能够轻松地与服务器进行通信...我们将探讨不同类型网络请求、错误处理、异步操作以及如何解析和处理响应数据。 Dart网络请求Flutter中进行网络请求之前,我们先回顾一下Dart中进行网络请求基本知识。...}'); } } 了解更多:http库文档 Flutter网络请求Flutter,我们可以使用http库进行网络请求,也可以使用更高级网络请求库,如dioflutter_http。...以下是一个使用dio库发送GET请求示例代码: 首先,我们需要在pubspec.yaml文件添加dio依赖: dependencies: dio: ^4.0.4 然后,我们可以使用dio方法发送...由于网络请求是一个耗时操作,我们应该使用async和await关键字来处理异步操作。这样可以确保在请求完成之前,不会阻塞应用程序 其他操作。 在处理网络请求,我们还需要考虑错误处理。

41740

检查 Flutter 应用程序是否在 Web 上运行(书籍推荐)

您可以使用基础kIsWeb常量检查您 Flutter 应用程序是否在 Web 浏览器上运行。...,并在新项目开发拓展创新。  ...介绍面向对象基本概念、类声明、成员变量与成员方法定义和使用方法,以及构造方法、类继承、抽象类、接口定义和使用方法等。   第5章Dart高级编程。...介绍泛型定义、使用方法和应用场景,同步和异步概念,并结合文件(目录)同步、异步操作相关API使用方法阐述同步、异步应用场景等。   第6章 基本组件。...,以及shared_preferences插件实现key-value键值对存储访问数据、sqflite插件实现soLite数据库操作、HttpClient实现GET和POST请求、http和Dio插件实现网络请求方法和应用场景

1.6K10

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券