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

推荐订阅源

博客园 - Franky
N
Netflix TechBlog - Medium
宝玉的分享
宝玉的分享
Google DeepMind News
Google DeepMind News
腾讯CDC
G
Google Developers Blog
Martin Fowler
Martin Fowler
Microsoft Security Blog
Microsoft Security Blog
Recent Announcements
Recent Announcements
爱范儿
爱范儿
Engineering at Meta
Engineering at Meta
Microsoft Azure Blog
Microsoft Azure Blog
A
About on SuperTechFans
aimingoo的专栏
aimingoo的专栏
有赞技术团队
有赞技术团队
Jina AI
Jina AI
人人都是产品经理
人人都是产品经理
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
M
MIT News - Artificial intelligence
罗磊的独立博客
博客园 - 三生石上(FineUI控件)
美团技术团队
WordPress大学
WordPress大学
阮一峰的网络日志
阮一峰的网络日志

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();