2015-07-04 21 views
5

Dizeleri, UIWebView'da uzaktan yüklenen bir PDF'de erişmeye çalışıyorum. Apple, UIMenuController ürün için listelenen kopyalama/tanımlama seçeneklerine sahip olduğundan, özel shareMenuController öğemle kullanmak için stringByEvaluatingJavaScriptFromString bildirimini uygulamak kadar kolay olacağını düşündüm. Bununla birlikte, bu, uzak PDF'ler haricinde, çoğu web sayfası ve metin aralığında evrensel olarak çalışır. Apple, seçilen dizileri panoya kopyalamak veya tanımlamak için bu dizelere nasıl erişir?Apple, sharedMenuController öğeleri için UIWebView PDF dizelerine nasıl erişir?


Düzeltme:

metin UIWebView pdf belgesi formatında seçildiğinde sadece Apple tarafından doldurulan 'define' sharedMenuController öğeyi test edilmiş ve bir hata oluşur:

+[_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 Ayrıca, Safari'de bir kullanıcı arama teriminden PDF metni arayaramadığınızı da fark ettiniz. Yani sanırım kendileri çıkarmakta zorlanıyorlar. Bellek sorunları olabilir, emin değilim, ancak seçilen metni hala panoya kopyalayabilirler. 'a nasıl öykünür ve kopyalanan metni kendimiz hallederiz?

+0

Lütfen lütuf için sebebi olduğunu, kanonik olduğunu unutmayın. Lütfen sadece oyu almak ya da bir oyu almak için ihtiyatlı bir cevap bırakmayın. Bu cevap potansiyel olarak bir TON kişisine yardımcı olabilir. Öyleyse lütfen açık, özlü ve eğitici olun. Öğrenmek için buradayım, o yüzden sadece kodu kopyalayıp yapıştırmayın, lütfen neler olduğunu açıklayın, böylece aslında ondan bir şeyler öğrenebilirim. Cevabınız olağanüstü ise, doğru cevap veren kişilere daha fazla itibarlı yatırım yapmaya istekliyim ve talep ettikleri gibi, birileri insanlara yardım edebilir. – soulshined

+0

Bir kaç maddeyi bana açıklayabilir misiniz? "Uzak PDF'ler" ile ne demek istiyorsun? Bu URL'ler bir UIWebView'daki bir URL'den mi açılıyor? Ve bu, sorunun kendisi üzerinde daha fazla bir açıklamadır - ayıklanan bir dizeyi almanın ve söz konusu PDF'lerden uygun bir değişkene yerleştirmenin bir yolunu mu arıyorsunuz? Bunun neden işe yaradığına dair bazı detaylı açıklamalarla birlikte. –

+0

Doğru @VelGenov yerel olarak değil uzaktan. Ve evet, açık olduğumu düşündüm. Sorgumda belirtilen yöntemi kullanarak dizeleri nasıl çıkaracağımı biliyorum, ancak bu yöntem PDF'ler için çalışmaz. Kısacası, Apple'ın copy/paste (sharedMenuController item) özelliği için yaptığı gibi uzak PDF'ler için bir dize ayıklamasını nasıl taklit ederdim. Geri bildiriminiz için teşekkürler - yardımcı olabilirsiniz. Ve açıklama harika. Dediğim gibi, – soulshined

cevap

0

Ne yazık ki, sorduğunuz şey iOS'ta geçerli UIWebView API'sı ile yapılamaz. Apple, PDF'lerden metin çıkarmak için özel bir çerçeve kullanır ve bu çerçeve harici uygulamalar için kullanılamaz.

+0

Teşekkürler, karmaşık değil = imkansız. Bu yanıtın% 100 doğru olduğunu hissetmiyorum veya sadece kelime öbeği olabilir. UIWebView'den hangi belge türüne (.doc, .pages vb.) Bakılmaksızın dizeleri ayıklayabileceğinizi biliyorum, bu nedenle özel API yapmanıza gerek kalmaz. Apple böyle yapar, özel yapar. Bunun kolay olmadığını biliyordum ve yukarıda yaptığımız tartışmaya göre, 2 yıl önce bunu araştırıyordum, ama birisinin bir çözümü olup olmadığını asla bilemezsiniz. UIWebView'dan bir PDF oluşturabilirseniz, metni almanın bir yolu vardır, ancak bu benim için de geçerlidir. – soulshined

+0

Hayır, imkansız değil, ama çok karmaşık algoritmalar kullandık. Daha fazla ayrıntı görmek istiyorsanız "PDF Reconstruction" da ABD patentlerini arayabilirsiniz. –

+0

Doğru, bu yüzden benim nokta şu ki, mevcut UIWebView ile bile yapılabilir, sadece basit bir 2 satır kod türü değil, bu yüzden SO üzerinde bir soruşturma yayınladım. Ama geribildirimleriniz için teşekkürler Michael, herhangi birinin Geliştirici forumlarında söyleyecek ilerici bir şey olup olmadığını görün. – soulshined