2015-07-04 11 views
5

Sto tentando di accedere alle stringhe in un PDF caricato in remoto in un UIWebView. Poiché Apple ha le opzioni di copia/definizione elencate per gli articoli UIMenuController, ho pensato che sarebbe stato altrettanto semplice come implementare la dichiarazione stringByEvaluatingJavaScriptFromString da utilizzare con il mio oggetto shareMenuController personalizzato. Tuttavia, questo funziona universalmente sulla maggior parte delle pagine Web e degli intervalli di testo, ad eccezione dei PDF remoti. In che modo Apple accede a queste stringhe per copiare gli intervalli selezionati negli appunti o definire?In che modo Apple accede alle stringhe UIWebView PDF per gli elementi sharedMenuController?


Correzione:

Ho appena provato la 'definire' sharedMenuController elemento popolato da Apple quando il testo è selezionato in un formato di documento UIWebView pdf e si verifica un errore:

+[_UIDictionaryManager _availableDefinitionDictionaries] returned nil. Error: Error Domain=ASError Code=21 "The operation couldn’t be completed. (ASError error 21 - Unable to copy asset information)"

I Ho anche notato che non è possibile cercare il testo PDF da un termine di ricerca dell'utente in Safari. Quindi suppongo che abbiano problemi a estrarlo da soli. Potrebbero esserci problemi di memoria, non sono sicuro, ma sono comunque in grado di copiare il testo selezionato negli Appunti. Come dovremmo emulare quello e gestire il testo copiato da soli?

+0

Si prega di notare il motivo per la taglia, è canonico. Per favore non lasciare una risposta frivola solo per cercare di ottenere la taglia o una parte di essa con voti alti. Questa risposta può potenzialmente aiutare una tonnellata di persone. Quindi, per favore, sii chiaro, conciso ed educativo. Sono qui per imparare, quindi, non copiare e incollare il codice, per favore spiega cosa sta succedendo, in modo che io possa effettivamente imparare qualcosa da esso. Se la risposta è eccezionale, sono disposto a investire più reputazione nella persona che risponde correttamente e come richiesto perché può aiutare una tonnellata di persone – soulshined

+0

Puoi chiarire un paio di elementi per me? Cosa intendi per "PDF remoti"? Questi PDF sono aperti da un URL in un UIWebView? E questo è più di un chiarimento sulla domanda stessa - stai cercando un modo per ottenere una stringa estratta e inserita in una variabile appropriata, fuori da detti PDF? Insieme ad alcune spiegazioni dettagliate sul perché questo funziona. –

+0

Correggi il comando @VelGenov come in locale. E sì, pensavo di essere stato chiaro. So come estrarre le stringhe usando il metodo indicato nella mia domanda, ma quel metodo non funziona per i PDF. Quindi, in breve, come dovrei emulare un'estrazione di stringhe per PDF remoti come fa Apple per la loro funzione copia/incolla (elemento condivisoMenuController). Grazie per il feedback - spero che tu possa aiutare. E la spiegazione è grande. Come ho detto, sono qui per imparare le idee – soulshined

risposta

0

Sfortunatamente, ciò che è stato chiesto non può essere fatto in iOS con l'API UIWebView corrente. Apple utilizza un framework privato per estrarre il testo dai PDF e questo framework non è disponibile per le app esterne.

+0

grazie, complesso non = è impossibile. Non mi sento come se questa risposta fosse precisa al 100%, o potrebbe essere solo il fraseggio. So che è possibile estrarre stringhe da una UIWebView indipendentemente dal tipo di documento (.doc, .pages etc) che lo è, quindi non necessariamente renderlo API privata. È così che Apple fa a modo loro, lo rende privato. Sapevo che non era facile, e secondo la nostra discussione di cui sopra, ho cercato questo da 2 anni, ma non si sa mai se qualcuno ha una soluzione. Se puoi creare un PDF da UIWebView c'è un modo per recuperare il testo, ma questo è oltre me. – soulshined

+0

No, non impossibile, ma abbiamo usato algoritmi molto complicati. Puoi cercare brevetti negli Stati Uniti su "Ricostruzione PDF" se vuoi vedere maggiori dettagli. –

+0

Giusto, quindi il mio punto è che non si può fare, anche con l'attuale UIWebView, non è solo un semplice codice a 2 linee di fatto, ed è per questo che ho pubblicato un'inchiesta su SO. Ma grazie per il tuo feedback Michael, vedi se qualcuno ha qualcosa di progressivo da dire nei forum degli sviluppatori - – soulshined

Problemi correlati