Flutter电子书阅读插件epub_viewer_new的使用

Flutter电子书阅读插件epub_viewer_new的使用

epub_viewer_new 是一个基于 Flutter 的电子书阅读插件,它封装了 FolioReaderKit 框架。此插件支持在 Android 和 iOS 平台上加载并阅读 EPUB 格式的电子书。

特性

以下是在 Android 和 iOS 平台上的功能支持情况:

功能名称 Android iOS
剩余阅读时间/剩余页数显示
最近阅读位置记录
无干扰模式阅读
从资源文件加载 EPUB 文件

使用步骤

1. 添加依赖

pubspec.yaml 文件中添加 epub_viewer_new 依赖:

dependencies:
  epub_viewer_new: ^0.0.1 # 请根据最新版本号更新

然后运行 flutter pub get 安装依赖。

2. 导入包

在 Dart 文件中导入 epub_viewer_new 包:

import 'package:epub_viewer_new/epub_viewer_new.dart';
3. 加载本地 EPUB 文件

要加载一个本地的 EPUB 文件(例如从 assets 文件夹中加载),可以使用以下代码:

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

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text('EPUB Reader Example')),
        body: Center(
          child: ElevatedButton(
            onPressed: () {
              // 加载本地 EPUB 文件
              EpubViewerN.open("assets/sample.epub");
            },
            child: Text('打开 EPUB 文件'),
          ),
        ),
      ),
    );
  }
}

注意

  • 确保 sample.epub 文件已正确添加到 assets 文件夹中,并在 pubspec.yaml 中声明:

    flutter:
      assets:
        - assets/sample.epub
    
4. 打开 EPUB 文件的详细设置

你还可以通过传递额外的参数来自定义阅读器的行为。例如:

EpubViewerN.open(
  "assets/sample.epub",
  options: Options(
    themeColor: Colors.red, // 设置阅读器的主题颜色
    identifier: "unique_id", // 设置唯一标识符
    scrollDirection: ScrollDirection.VERTICAL, // 设置滚动方向
  ),
);

4. 示例代码完整版

以下是完整的示例代码,展示如何加载本地 EPUB 文件并自定义阅读器选项:

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

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text('EPUB Reader Example')),
        body: Center(
          child: ElevatedButton(
            onPressed: () {
              // 加载本地 EPUB 文件并自定义阅读器选项
              EpubViewerN.open(
                "assets/sample.epub",
                options: Options(
                  themeColor: Colors.blue,
                  identifier: "my_unique_id",
                  scrollDirection: ScrollDirection.VERTICAL,
                ),
              );
            },
            child: Text('打开 EPUB 文件'),
          ),
        ),
      ),
    );
  }
}

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

1 回复

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


epub_viewer_new 是一个用于在 Flutter 应用中显示 EPUB 电子书的插件。它提供了一个简单的接口来加载和显示 EPUB 文件,并支持基本的阅读功能,如翻页、缩放、书签等。

安装

首先,你需要在 pubspec.yaml 文件中添加 epub_viewer_new 依赖:

dependencies:
  flutter:
    sdk: flutter
  epub_viewer_new: ^1.0.0  # 请确保使用最新的版本

然后运行 flutter pub get 来安装依赖。

基本用法

  1. 导入包

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

    import 'package:epub_viewer_new/epub_viewer_new.dart';
    
  2. 打开 EPUB 文件

    你可以使用 EpubViewer.open 方法来打开一个 EPUB 文件。你需要提供 EPUB 文件的路径。

    void openEpub() async {
      String epubPath = 'path/to/your/book.epub';
      await EpubViewer.open(epubPath);
    }
    

    如果你是从网络下载 EPUB 文件,你需要先将文件保存到本地,然后再使用 EpubViewer.open 方法打开。

  3. 监听事件

    epub_viewer_new 提供了一些事件监听器,例如当用户关闭阅读器时:

    EpubViewer.closeListener.listen((_) {
      print('Epub viewer closed');
    });
    

高级用法

  1. 自定义阅读器样式

    你可以通过 EpubViewer.setConfig 方法来自定义阅读器的样式,例如字体大小、背景颜色等。

    EpubViewer.setConfig(
      themeColor: Colors.blue,
      scrollDirection: EpubScrollDirection.HORIZONTAL,
      allowSharing: true,
      enableTts: false,
    );
    
  2. 处理书签

    你可以使用 EpubViewer.bookmarkListener 来监听用户添加书签的事件:

    EpubViewer.bookmarkListener.listen((bookmark) {
      print('Bookmark added: $bookmark');
    });
    
  3. 处理章节变化

    你可以使用 EpubViewer.chapterListener 来监听章节变化:

    EpubViewer.chapterListener.listen((chapter) {
      print('Chapter changed: $chapter');
    });
    

示例代码

以下是一个完整的示例代码,展示了如何使用 epub_viewer_new 插件来打开一个 EPUB 文件并监听相关事件:

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

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: HomeScreen(),
    );
  }
}

class HomeScreen extends StatelessWidget {
  void openEpub() async {
    String epubPath = 'path/to/your/book.epub';
    await EpubViewer.open(epubPath);

    EpubViewer.closeListener.listen((_) {
      print('Epub viewer closed');
    });

    EpubViewer.bookmarkListener.listen((bookmark) {
      print('Bookmark added: $bookmark');
    });

    EpubViewer.chapterListener.listen((chapter) {
      print('Chapter changed: $chapter');
    });
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('EPUB Viewer Example'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: openEpub,
          child: Text('Open EPUB'),
        ),
      ),
    );
  }
}
回到顶部