2016-03-20 16 views
1

UIWebView içinde görüntülemek istediğim bir web sitesinin bir öğesi var. Öğe, xpath yanı sıra css için benzersiz bir kimliğe sahiptir. Mümkün mü? Bunu nasıl yapabilirim? Yardım çok takdir edilir.xpath/css ile Swift/UIWebView

enter image description here

bu kodu kullanabilirsiniz Yukleme:

let url : NSURL! = NSURL(string: "http://blablablabla.com") 
webView.loadRequest(NSURLRequest(URL: url)) 

Ama tüm sayfayı görüntülemek için istemiyoruz. Sadece bu kimliğe sahip eleman.

+0

Bu yorum bana nasıl yardımcı olacak? Sadece bu öğeyi o kimlikle göstermek istiyorum, tüm sayfayı değil, ben de bir web görünümünde kullandığım gibi –

+0

Üzgünüm. Evet haklısın. Yorumunuzu yazarken sorumu yeniden düzenledim. Yani. Simly mümkün değil mi? –

+0

Sohbet, bu web görünümündeki bir youtube canlı akışından görüntülemek istiyorum. https://www.youtube.com/watch?v=Hpl9LJUPJuA –

cevap

1

UIWebView kullanıyorsunuz, daha yeni değil WKWebView. İhtiyacınız olan bir HTML ayrıştırıcısıdır (HTMLReader'u seçtim). Sayfa içeriğini indirdikten sonra, istediğiniz div çıkarıp sayfanın body kodunu div'un innerHTML ile değiştirin.

import HTMLReader 

override func viewDidLoad() { 
    super.viewDidLoad() 
    loadHTML() 
} 

func loadHTML() { 
    let url = NSURL(string: "https://en.wikipedia.org/wiki/Main_Page")! 
    let request = NSURLRequest(URL: url) 

    let session = NSURLSession(configuration: NSURLSessionConfiguration.defaultSessionConfiguration()) 
    let task = session.dataTaskWithRequest(request) { data, response, error in 
     guard error == nil else { 
      print(error!.localizedDescription) 
      return 
     } 
     guard let data = data else { 
      print("data is nil") 
      return 
     } 

     let html = HTMLDocument(data: data, contentTypeHeader: nil) 
     if let head = html.firstNodeMatchingSelector("head"), 
      didYouKnow = html.firstNodeMatchingSelector("#mp-dyk") { 
       let newHTML = "<html><head>\(head.innerHTML)</head><body>\(didYouKnow.innerHTML)</body></html>" 
       self.webView.loadHTMLString(newHTML, baseURL: url) 
     } 
    } 
    task.resume() 
} 

Bu oldukça basit ve olsa% 100 hamlede değildir:

Aşağıdaki kod Eğer Wikipedia üzerinde bölüm biliyor muydunuz alır. Sorununu çözüp çözmediğine bak.

+0

ve bunu bir UIWebView içine nasıl koyabilirim? Hangi kodla onu ararım? Bu kod bir UIButton içindir? ama bende yok. üzgünüm bu soru biraz aptalca –

+0

Çalıştırmak için tetiklemek için bir düğme var ama zorunda değilsiniz. Bunu viewDidLoad'dan çağırabilirsiniz. Düzenlenmiş cevabımı gör –

+0

Düzenleme ve açıklamalarınız için minnettarım ama yine de sormam gerekiyor ... Bunu webview ile yapıyorum: 'webView.loadRequest (NSURLRequest (URL: url))' nasıl loadHTML işlevinin çıktısını web görünümüne yerleştirmek? –