Risposte:
Il formato EPUB riunisce una serie di diverse specifiche / formati:
Le specifiche sembrano un po 'scoraggianti, ma in realtà una volta che hai le basi (decompressione, analisi XML) non è particolarmente difficile o complesso.
Dovrai capire come scaricare l'EPUB, decomprimerlo da qualche parte, analizzare il manifest e quindi visualizzare il contenuto pertinente.
Alcuni suggerimenti se hai appena iniziato:
Per visualizzare il contenuto usa UIWebView
per ora.
Ecco un passo dopo passo di alto livello per il tuo codice:
1) crea una vista con estensione UIWebView
2) scarica il file EPUB
3) decomprimilo in una sottodirectory nella cartella dei documenti della tua app utilizzando la libreria zip, collegata sopra
4) analizzare il file XML in META-INF/container.xml
(se questo file non esiste l'EPUB non è valido) utilizzando TBXML, collegato sopra
5) In questo XML, trova il primo "rootfile" con media-type application/oebps-package+xml
. Questo è il file OPF del libro.
6) analizza il file OPF (anche XML)
7) ora devi sapere qual è il primo capitolo del libro.
a) ciascun <item>
nel <manifest>
elemento ha un id e un href. Memorizzali in un punto in NSDictionary
cui la chiave è l'id e l'oggetto è l'href.
b) Guarda il primo <itemref>
nel file <spine>
. Ha un attributo idref che corrisponde a uno degli id in (a). Cerca quell'ID nel NSDictionary
e otterrai un href.
c) questo è il file del primo capitolo da mostrare all'utente. Calcola qual è il percorso completo (suggerimento: è ovunque hai decompresso il file zip in (3) più la directory di base del file OPF in (6))
8) crea un NSURL
using fileURLWithPath:
, dove il percorso è il percorso completo da (7c). Carica questa richiesta utilizzando il UIWebView
creato in (1).
Avrai bisogno di implementare pulsanti avanti / indietro o scorri o qualcosa del genere in modo che gli utenti possano spostarsi da un capitolo all'altro. Usa il <spine>
per capire quale file mostrare dopo - <itemrefs>
i file nell'XML sono nell'ordine in cui dovrebbero apparire al lettore.
Apparentemente EPUB è "solo" un formato XML, quindi se hai un parser xml e le specifiche dovrebbero andare bene.
Più un po 'di tuto ? Divertiti!
EDIT: potresti anche leggere del codice qui , questo è per generare epub, non per leggerli ma il codice può essere utile.
MODIFICA di nuovo: e vedi i link alla domanda correlata nella barra laterale destra, ci sono alcuni link nelle risposte al lettore di ebook gratuito che supporta ePub.
MODIFICA 3: dovresti aggiungere un commento quando modifichi la tua domanda in modo che le persone che ti rispondano possano continuare la discussione (se non commenti non ci accorgiamo della tua modifica).
Quindi, l'analisi fallisce perché non hai letto le specifiche o le domande correlate su Stack Overflow ... * .epub file sono una cartella compressa contenente file XML, non semplice xml.
Ho letto questo tutorial una volta (è richiesta la registrazione gratuita, mi dispiace) e mi ha dato un'ottima introduzione a ePub. tutorial deverloperWorks qui
Ti consiglio caldamente di guardare alcune delle librerie di elaborazione XML. Se vuoi solo ottenere informazioni specifiche dal file XML, puoi scegliere la giusta strategia di analisi.
Sto giocando in giro per creare un epub-framework per le app per iPhone.
Al momento (ho davvero appena iniziato) posso generare una pagina del titolo con collegamenti ai capitoli.
Il mio approccio è
In questo momento sto esaminando il pageflip, una sorta di interfaccia grafica e problemi minori di usabilità (salva la pagina corrente che viene visualizzata)
Spero che ti dia un'idea su come iniziare
Jonathan Wight (schwa) ha sviluppato una soluzione ObjC per analizzare e visualizzare i documenti ePub su iPhone. Fa parte del suo repository open source TouchCode.