Epub dosyalarını görüntülemek için Flutter dilinde birçok farklı paket bulunmaktadır. Biz, epub_view
adlı bir paketi kullanarak basit bir Epub uygulaması oluşturabiliriz. İşte adım adım nasıl yapacağımız:
pubspec.yaml
dosyanıza aşağıdaki satırı ekleyerekepub_view
paketini projenize ekleyin:
dependencies:
epub_view: ^0.3.0
Daha sonra, main.dart
dosyanıza aşağıdaki kodu ekleyin:
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:epub_view/epub_view.dart';
void main() => runApp(EpubUygulamasi());
class EpubUygulamasi extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Epub Uygulaması',
home: EpubSayfasi(),
);
}
}
class EpubSayfasi extends StatefulWidget {
@override
_EpubSayfasiState createState() => _EpubSayfasiState();
}
class _EpubSayfasiState extends State<EpubSayfasi> {
EpubController _epubController;
Future<Book> _book;
@override
void initState() {
super.initState();
_book = _initBook();
}
Future<Book> _initBook() async {
var epubPath = await getFileFromAssets('assets/book.epub');
var book = await EpubReader.readBook(File(epubPath).readAsBytesSync());
return book;
}
Future<String> getFileFromAssets(String path) async {
return await rootBundle.loadString(path);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Epub Uygulaması'),
),
body: FutureBuilder<Book>(
future: _book,
builder: (context, snapshot) {
if (snapshot.hasData) {
return EpubView(
controller: _epubController,
book: snapshot.data,
);
} else {
return Center(child: CircularProgressIndicator());
}
},
),
);
}
}
Bu örnekte, getFileFromAssets
fonksiyonu ile Epub dosyasını uygulamamıza dahil ediyoruz. Daha sonra, _initBook
fonksiyonu ile Epub dosyasını okuyarak bir Book
nesnesi oluşturuyoruz. Son olarak, EpubView
bileşenini kullanarak Epub dosyasını görüntülüyoruz.
Bu örnekte, Epub dosyasını assets
klasörüne ekledik, ancak bu klasör mevcut değilse, oluşturmanız ve Epub dosyasını içine koymalısınız. Ayrıca, assets
klasörü pubspec.yaml
dosyasında belirtilmelidir.
Umarım bu örnek, bir Epub uygulaması yazmak için size yardımcı olur.