惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Microsoft Security Blog
Microsoft Security Blog
量子位
大猫的无限游戏
大猫的无限游戏
酷 壳 – CoolShell
酷 壳 – CoolShell
IT之家
IT之家
博客园 - 三生石上(FineUI控件)
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - Franky
美团技术团队
Last Week in AI
Last Week in AI
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
人人都是产品经理
人人都是产品经理
罗磊的独立博客
Jina AI
Jina AI
小众软件
小众软件
S
SegmentFault 最新的问题
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
雷峰网
雷峰网
博客园 - 聂微东
博客园_首页
The Cloudflare Blog
WordPress大学
WordPress大学
Apple Machine Learning Research
Apple Machine Learning Research
有赞技术团队
有赞技术团队

LengYue's Blog

在 Android 中实现 iOS 液态玻璃效果(二:折射与渗透效果) | LengYue's Blog 在 Android 中实现 iOS 液态玻璃效果 | LengYue's Blog Dart 单线程模型的本质 | LengYue's Blog 使用 Rust 开发 Android 底层库,并简化 Java 与 Rust 相互操作 | LengYue's Blog 将 Rust 编译为可在 Android 上使用的二进制文件 | LengYue's Blog 使用 GoMobile 创建 Android、iOS 跨平台 WebSocket Library | LengYue's Blog AndroidStudio新版本Logcat | LengYue's Blog Typecho to Hugo | LengYue's Blog GetX Router 设置返回值 | LengYue's Blog Flutter 基础 | Dart 语法 mixin | LengYue's Blog 不使用第三方软件实现Obsidian多平台实时同步 | LengYue's Blog Android 使用字节码 hook 修复第三发 bug | LengYue's Blog 在 Jetpack Compose 中使用输入框(TextField )遇到的一些问题 | LengYue's Blog Android-使用@AutoService实现spi | LengYue's Blog RecyclerView使用优化的ListAdapter | LengYue's Blog ⾃定义布局流程 | LengYue's Blog ViewModel之自定义构造函数 | LengYue's Blog Android Jetpack Compose 超快速上手指南 | LengYue's Blog android 11 [api 30] 适配指南 | LengYue's Blog Android 声明式 UI 框架 Litho 初探 —— Sections API | LengYue's Blog Android 声明式 UI 框架 Litho 初探 —— Layout | LengYue's Blog Android声明式UI框架 Litho 初探 —— MountSpec的使用 | LengYue's Blog Android声明式UI框架 Litho 初探——基础使用 | LengYue's Blog Android声明式UI框架 Litho 初探 ——两种数据类型 | LengYue's Blog
Flutter error not found dart html | LengYue's Blog
LengYue · 2022-04-20 · via LengYue's Blog

场景:同一个项目,打包成 Flutter web 和 Flutter App。 问题:Error: Not found: ‘dart

’。 产生上面问题的原因其实就是 Flutter web 使用了 dart

包的类,而 Flutter App 没有 dart

相关类。相应的 dart.io 这个包,在 web 中也是不存在。像类似的情况有很多。 要解决上面的问题也很简单。写一个类似 MVC 的调用文件就可以了。Flutter 开发中网络请求使用最多的应该就是 dio 了。我们就以 dio 为例子,写一个调用的实例: dio 初始化的时候需要指定 HttpClientAdapter。在 app 上为 DefaultHttpClientAdapter web 上为 BrowserHttpClientAdapter,如果全部用 DefaultHttpClientAdapter web 端会提示不支持。如果这么写:

idWeb? BrowserHttpClientAdapter() else DefaultHttpClientAdapter

就会出现跟上面一样的。提示 package

/adapter_browser.dart not found。 解决:

  • http_client_adapter:用于中间承接转化工具。
  • http_client_adapter_io.dart:如果是 Flutter App 就引入这个包
  • http_client_adapter_web.dart:如果是 Flutter web 就引入这个包 http_client_adapter:
export './http_client_adapter_web.dart' if (dart.library.io) './http_client_adapter_io.dart';

http_client_adapter_io:

import 'package:dio/adapter.dart';
import 'package:dio/dio.dart';
HttpClientAdapter getHttpClientAdapter() {
  return DefaultHttpClientAdapter();
}

http_client_adapter_web

import 'package:dio/adapter_browser.dart';
import 'package:dio/dio.dart';
HttpClientAdapter getHttpClientAdapter() {
  return BrowserHttpClientAdapter();
}

调用:

import 'http_client_adapter.dart' as adapter;
httpClientAdapter = adapter.getHttpClientAdapter();