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
更多关于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 来安装依赖。
基本用法
-
导入包
在你的 Dart 文件中导入
epub_viewer_new包:import 'package:epub_viewer_new/epub_viewer_new.dart'; -
打开 EPUB 文件
你可以使用
EpubViewer.open方法来打开一个 EPUB 文件。你需要提供 EPUB 文件的路径。void openEpub() async { String epubPath = 'path/to/your/book.epub'; await EpubViewer.open(epubPath); }如果你是从网络下载 EPUB 文件,你需要先将文件保存到本地,然后再使用
EpubViewer.open方法打开。 -
监听事件
epub_viewer_new提供了一些事件监听器,例如当用户关闭阅读器时:EpubViewer.closeListener.listen((_) { print('Epub viewer closed'); });
高级用法
-
自定义阅读器样式
你可以通过
EpubViewer.setConfig方法来自定义阅读器的样式,例如字体大小、背景颜色等。EpubViewer.setConfig( themeColor: Colors.blue, scrollDirection: EpubScrollDirection.HORIZONTAL, allowSharing: true, enableTts: false, ); -
处理书签
你可以使用
EpubViewer.bookmarkListener来监听用户添加书签的事件:EpubViewer.bookmarkListener.listen((bookmark) { print('Bookmark added: $bookmark'); }); -
处理章节变化
你可以使用
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'),
),
),
);
}
}

