Flutter电子书渲染插件epubrender的使用
Flutter电子书渲染插件epubrender的使用
epub_view
Pure flutter widget (非原生)用于在所有平台上查看EPUB文档。基于epub
包。使用flutter小部件(而不是原生视图)在任何平台上呈现:Web、MacOs、Windows、Linux、Android 和 iOS。
展示
开始使用
在你的Flutter项目中添加依赖:
flutter pub add epubrender
使用示例
import 'dart:typed_data';
import 'package:flutter/material.dart';
import 'package:flutter_epub/flutter_epub.dart';
late EpubController _epubController;
@override
void initState() {
super.initState();
_epubController = EpubController(
// 加载文档
document: EpubDocument.openAsset('assets/book.epub'),
// 设置起始点
epubCfi: 'epubcfi(/6/6[chapter-2]!/4/2/1612)',
);
}
@override
Widget build(BuildContext context) => Scaffold(
// 显示EPUB文档
body: EpubView(
url: 'example.com/file.epub',
),
);
如何从上次阅读位置开始?
此方法允许你即使在章节内部也能保持精确的阅读位置:
_epubController = EpubController(
// 使用EPUB CFI字符串初始化以从上次位置打开书籍
epubCfi: 'epubcfi(/6/6[chapter-2]!/4/2/1612)',
);
// 添加控制器
EpubView(
controller: _epubController,
);
// 获取EPUB CFI字符串
// 例如输出 - epubcfi(/6/6[chapter-2]!/4/2/1612)
final cfi = _epubController.generateEpubCfi();
// 或者使用控制器进行导航
_epubController.gotoEpubCfi('epubcfi(/6/6[chapter-2]!/4/2/1612)');
API
打开文档
本地文档打开:
EpubDocument.openAsset('assets/sample.pdf')
EpubDocument.openData(FutureOr<Uint8List> data)
// 不支持在Web上
EpubDocument.openFile('path/to/file/on/device')
网络文档打开:
安装internet_file
包(支持所有平台):
flutter pub add internet_file
然后使用它:
import 'package:internet_file/internet_file.dart';
// 需要服务器上的CORS策略。
// 您可以提高您的CORS代理。
EpubDocument.openData(InternetFile.get('https://link.to/book.epub'))
控制文档
// 获取实际视图插入的EPUB CFI字符串
// 例如输出 - epubcfi(/6/6[chapter-2]!/4/2/1612)
final cfi = _epubController.generateEpubCfi();
// 导航到文档中的段落
_epubController.gotoEpubCfi('epubcfi(/6/6[chapter-2]!/4/2/1612)');
文档回调
EpubView(
controller: epubController,
onExternalLinkPressed: (href) {},
onDocumentLoaded: (document) {},
onChapterChanged: (chapter) {},
onDocumentError: (error) {},
);
更多关于Flutter电子书渲染插件epubrender的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复
更多关于Flutter电子书渲染插件epubrender的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
epubrender
是一个用于在 Flutter 应用中渲染和显示 EPUB 电子书的插件。它允许你加载和展示 EPUB 文件,并提供基本的阅读功能,如翻页、缩放、书签等。以下是如何在 Flutter 项目中使用 epubrender
插件的简要指南。
1. 添加依赖
首先,在你的 pubspec.yaml
文件中添加 epubrender
插件的依赖:
dependencies:
flutter:
sdk: flutter
epubrender: ^0.0.1 # 使用最新版本
然后运行 flutter pub get
以安装依赖。
2. 加载和渲染 EPUB 文件
接下来,你可以在你的 Flutter 应用中加载和渲染 EPUB 文件。以下是一个简单的示例:
import 'package:flutter/material.dart';
import 'package:epubrender/epubrender.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'EPUB Reader',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: EpubReaderScreen(),
);
}
}
class EpubReaderScreen extends StatefulWidget {
@override
_EpubReaderScreenState createState() => _EpubReaderScreenState();
}
class _EpubReaderScreenState extends State<EpubReaderScreen> {
EpubController _epubController;
@override
void initState() {
super.initState();
_loadEpub();
}
Future<void> _loadEpub() async {
_epubController = EpubController(
document: EpubDocument.openAsset('assets/book.epub'),
);
setState(() {});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('EPUB Reader'),
),
body: _epubController != null
? EpubReader(
controller: _epubController,
)
: Center(
child: CircularProgressIndicator(),
),
);
}
}
3. 添加 EPUB 文件到项目中
将你的 EPUB 文件放在 assets
文件夹中,并在 pubspec.yaml
文件中声明它:
flutter:
assets:
- assets/book.epub