diff --git a/packages/epub_view/example/lib/main.dart b/packages/epub_view/example/lib/main.dart index 2a74b799..d64da211 100644 --- a/packages/epub_view/example/lib/main.dart +++ b/packages/epub_view/example/lib/main.dart @@ -82,6 +82,7 @@ class _MyHomePageState extends State { _epubReaderController = EpubController( document: // EpubDocument.openAsset('assets/New-Findings-on-Shirdi-Sai-Baba.epub'), + // EpubDocument.openUrl('https://www.gutenberg.org/ebooks/11.epub.images'), EpubDocument.openAsset('assets/New-Findings-on-Shirdi-Sai-Baba.epub'), // epubCfi: // 'epubcfi(/6/26[id4]!/4/2/2[id4]/22)', // book.epub Chapter 3 paragraph 10 diff --git a/packages/epub_view/lib/src/helpers/epub_document.dart b/packages/epub_view/lib/src/helpers/epub_document.dart index b4746b8a..533525ce 100644 --- a/packages/epub_view/lib/src/helpers/epub_document.dart +++ b/packages/epub_view/lib/src/helpers/epub_document.dart @@ -1,5 +1,6 @@ // ignore: unnecessary_import import 'dart:typed_data'; +import 'package:http/http.dart' as http; import 'package:epubx/epubx.dart'; import 'package:flutter/services.dart'; @@ -20,4 +21,17 @@ class EpubDocument { final bytes = await file.readAsBytes(); return EpubReader.readBook(bytes); } + + static Future openUrl(String url) async { + var uri = Uri.parse(url); + final response = await http.get(uri); + + if (response.statusCode == 200) { + return EpubReader.readBook(response.bodyBytes); + } else { + throw Exception('Failed to load epub'); + } + } + + } diff --git a/packages/epub_view/pubspec.yaml b/packages/epub_view/pubspec.yaml index 92d508dd..a3b27f13 100644 --- a/packages/epub_view/pubspec.yaml +++ b/packages/epub_view/pubspec.yaml @@ -18,7 +18,8 @@ dependencies: scrollable_positioned_list: ^0.3.8 collection: ^1.17.1 universal_file: ^1.0.0 - + http: ^1.1.2 + dev_dependencies: flutter_test: sdk: flutter