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.yamldosyanıza aşağıdaki satırı ekleyerekepub_viewpaketini 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.