Flutter漫画阅读插件ez_manga的使用

Flutter漫画阅读插件ez_manga的使用

特性

这是一个用于从otakusan.net抓取漫画并从mangadex读取漫画的包。

开始使用

V1.0.0: 支持从otakusan抓取漫画(我将很快更新从mangadex读取漫画的功能)!

使用方法

void main() async {
  // 搜索一部漫画
  final String? name = stdin.readLineSync();
  final List<MangaBase> list = await OtakuSan.search(name!);
  list.forEach(print);

  // 选择漫画
  stdout.write("选择: ");
  int choice = int.parse(stdin.readLineSync()!);
  final Manga manga = await OtakuSan.loadMangaInfo(manga: list[choice - 1]);
  print(manga);

  // 加载章节
  manga.chapters.forEach(print);
  stdout.write("输入章节编号: ");
  choice = int.parse(stdin.readLineSync()!);

  // 获取页面
  print(manga.chapters[choice - 1].uri);
  await OtakuSan.read(manga.chapters[choice - 1].uri).then((chap) => chap.forEach(print));
}

额外信息

这是我在我的Flutter项目manga_read中使用的包。


完整示例Demo

以下是一个完整的示例代码,展示了如何使用ez_manga插件来搜索、加载和读取漫画。

import 'package:ez_manga/ez_manga.dart';
import 'dart:io';

void main() async {
  // 搜索一部漫画
  stdout.write("请输入漫画名称: ");
  final String? name = stdin.readLineSync();
  if (name == null || name.isEmpty) {
    print("请输入有效的漫画名称");
    return;
  }
  
  final List<MangaBase> list = await OtakuSan.search(name);
  print("找到以下漫画:");
  list.forEach(print);

  // 选择漫画
  stdout.write("请选择漫画编号: ");
  int choice = int.parse(stdin.readLineSync()!);
  final Manga manga = await OtakuSan.loadMangaInfo(manga: list[choice - 1]);
  print("已选漫画:");
  print(manga);

  // 加载章节
  print("漫画章节:");
  manga.chapters.forEach(print);
  stdout.write("请输入章节编号: ");
  choice = int.parse(stdin.readLineSync()!);

  // 获取页面
  print("章节页面URI:");
  print(manga.chapters[choice - 1].uri);
  
  // 读取章节内容
  await OtakuSan.read(manga.chapters[choice - 1].uri)
      .then((chap) => chap.forEach(print));
}

更多关于Flutter漫画阅读插件ez_manga的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter漫画阅读插件ez_manga的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


ez_manga 是一个用于 Flutter 的漫画阅读插件,它提供了丰富的功能来帮助开发者在应用中实现漫画阅读体验。以下是一些基本的使用步骤和功能概述:

1. 添加依赖

首先,在你的 pubspec.yaml 文件中添加 ez_manga 插件的依赖:

dependencies:
  ez_manga: ^版本号

请将 ^版本号 替换为实际的最新版本号。

2. 导入包

在你的 Dart 文件中导入 ez_manga 包:

import 'package:ez_manga/ez_manga.dart';

3. 使用 EzMangaViewer

EzMangaViewerez_manga 插件中用于显示漫画的主要组件。你可以通过以下方式使用它:

EzMangaViewer(
  imageUrls: [
    'https://example.com/manga_page_1.jpg',
    'https://example.com/manga_page_2.jpg',
    // 添加更多的图片 URL
  ],
  onPageChanged: (int page) {
    print('当前页: $page');
  },
)

4. 配置选项

EzMangaViewer 提供了多个配置选项,可以根据需要进行自定义:

  • imageUrls: 漫画页面的 URL 列表。
  • onPageChanged: 当用户翻页时触发的回调。
  • initialPage: 初始显示的页面索引。
  • loadingWidget: 自定义加载中的 Widget。
  • errorWidget: 自定义加载失败的 Widget。
  • pageSpacing: 页面之间的间距。
  • background: 背景颜色或背景 Widget。

5. 高级功能

ez_manga 还支持一些高级功能,例如:

  • 缓存管理: 可以配置图片缓存策略,以提高加载速度和减少流量消耗。
  • 手势控制: 支持双指缩放、滑动翻页等手势操作。
  • 阅读模式: 支持横向和纵向阅读模式切换。

6. 示例代码

以下是一个完整的示例代码,展示如何使用 EzMangaViewer

import 'package:flutter/material.dart';
import 'package:ez_manga/ez_manga.dart';

class MangaReaderScreen extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('漫画阅读器'),
      ),
      body: EzMangaViewer(
        imageUrls: [
          'https://example.com/manga_page_1.jpg',
          'https://example.com/manga_page_2.jpg',
          'https://example.com/manga_page_3.jpg',
        ],
        onPageChanged: (int page) {
          print('当前页: $page');
        },
        initialPage: 0,
        loadingWidget: Center(
          child: CircularProgressIndicator(),
        ),
        errorWidget: Center(
          child: Text('加载失败'),
        ),
        pageSpacing: 10.0,
        background: Colors.black,
      ),
    );
  }
}
回到顶部