翻译:English
Fetcher 用于从 uri 获取数据,返回 FetchResult,交由 Decoder 使用。
Sketch 支持的每一种 uri 都有对应的 Fetcher 实现,如下表所示:
URI | Fetcher | Create | Dependent modules | Android | iOS | Desktop | Web |
---|---|---|---|---|---|---|---|
http://, https:// | HurlHttpUriFetcher | - | sketch-http-hurl | ✅ | ❌ | ✅ | ❌ |
http://, https:// | OkHttpHttpUriFetcher | - | sketch-http-okhttp | ✅ | ❌ | ✅ | ❌ |
http://, https:// | KtorHttpUriFetcher | - | sketch-http-ktor3 | ✅ | ✅ | ✅ | ✅ |
file://, / | FileUriFetcher | newFileUri() | - | ✅ | ✅ | ✅ | ✅ |
file:///compose_resource/ | ComposeResourceUriFetcher | newComposeResourceUri() | sketch-compose-resources | ✅ | ✅ | ✅ | ✅ |
data:image/jpeg;base64 | Base64UriFetcher | newBase64Uri() | - | ✅ | ✅ | ✅ | ✅ |
file:///android_asset/ | AssetUriFetcher | newAssetUri() | - | ✅ | ❌ | ❌ | ❌ |
content:// | ContentUriFetcher | - | - | ✅ | ❌ | ❌ | ❌ |
android.resource:// | ResourceUriFetcher | newResourceUri() | - | ✅ | ❌ | ❌ | ❌ |
app.icon:// | AppIconUriFetcher | newAppIconUri() | sketch-extensions-appicon | ✅ | ❌ | ❌ | ❌ |
file:///kotlin_resource/ | KotlinResourceUriFetcher | newKotlinResourceUri() | - | ❌ | ✅ | ✅ | ❌ |
- HurlHttpUriFetcher:使用 jvm 自带的 HttpURLConnection 从网络加载图片。了解更多
- OkHttpHttpUriFetcher:使用 OkHttp 从网络加载图片。了解更多
- KtorHttpUriFetcher:使用 Ktor 从网络加载图片。了解更多
- AssetUriFetcher:用于从 Android 的 assets 目录加载图片
- ContentUriFetcher:用于 Android 的 ContentResolver 加载图片
- ResourceUriFetcher:用于从 Android 的 resources 目录加载图片
- AppIconUriFetcher:用于加载已安装 App 的图标,它还需要依赖
sketch-extensions-core
模块。了解更多 - Base64UriFetcher:用于从 uri 本身的 base64 数据块中加载图片
- ComposeResourceUriFetcher:用于从 Compose Multiplatform 的 composeResources
目录加载图片,它还需要依赖
sketch-compose-resources
模块。 - KotlinResourceUriFetcher:用于从 kotlin 的 resources 目录加载图片
Important
上述组件都支持自动注册,你只需要导入即可,无需额外配置,如果你需要手动注册, 请阅读文档:《注册组件》
先实现 Fetcher 接口定义你的 Fetcher 和它的 Factory
然后参考文档 《注册组件》 注册你的 Fetcher 即可