Uses EPUB.js to parse and render epubs on iOS and Android using React Native.
To use the components in your own app install via npm or yarn
npm install --save epubjs-rnthen link the required libraries with
react-native link react-native-static-server && react-native link react-native-webview && react-native link react-native-zip-archive && RNFB_ANDROID_PERMISSIONS=true react-native link rn-fetch-blob && react-native link react-native-orientationthen require the components you need
import { Epub } from 'epubjs-rn';
Then you can add the reader element in your code:
<Epub src={"https://s3.amazonaws.com/epubjs/books/moby-dick/OPS/package.opf"}
flow={"paginated"} />src: the url of your epub to renderflow:paginated:scrolled- (default to false, which presents a scrolling view)location: Can be an EPUBCFI, Chapter Url or Spine PositiononLocationChange: Function called on every page change, reports current CFIonLocationsReady: Function called once the locations has been generated. Returns the locations object.onViewAdded: Function called once a view has been added to the screen.beforeViewRemoved: Function called before a view will be removed from the screen.width: width (int) of the Epub Renditionheight: height (int) of the Epub RenditiononReady: Function called once book has been opened. Returns the book objectthemes: JSON object of themes names and css properties to be appliedtheme: Name of the theme to apply, such aslightfontSize: CSS override for font size of theme, needs a css unitfont: CSS override for font familystylesheet: Link to css stylesheet containing themesscript: Url for a javascript file to be injected into the viewminSpreadWidth: cut off width for spreadsgap: gap (int) between columns / pages
To unzip compressed epubs locally and use http to stream them to epubjs,
you will want to use the Streamer class to manage the files and start a StaticServer.
An example of this method is provided in the example app.
import { Epub, Streamer } from "epubjs-rn";
let streamer = new Streamer();
streamer.start("8899")
.then((origin) => {
console.log("Served from:", origin)
return this.streamer.get("https://s3.amazonaws.com/epubjs/books/moby-dick.epub");
})
.then((src) => {
console.log("Loading from:", src);
return this.setState({src});
});
Install from Yarn
yarn install -g react-native-cli
yarnThen start the iOS or Android App
react-native run-ios
react-native run-androidEPUB is a registered trademark of the IDPF.