2016-04-08 26 views
0

Uygulamam, özel anahtar kelimeler kullanan bilgileri görüntüler. Kullanıcı bu anahtar kelimelerden birine dokunduğunda, uygulama, anahtar kelime hakkında ek bilgi veren bir UIWebView açar.URL'de bir parça tanıtıcısı varsa (#)

NSURLRequest * request = [NSURLRequest requestWithURL: currentURL] ; 
webView = [[UIWebView alloc] initWithFrame: frame]; 
webView.scalesPageToFit=YES; 
[webView setDelegate: self]; 
[webView loadRequest:request]; 

Her şey basit bir URL "chapter5.html" için çalışıyor ancak URL "chapter5.html # section3" bir bölüm belirteci varsa, sayfa açılmıyor: Burada UIWebView yaratır koddur hepsi-bölümün başında bile değil5.

Sanırım bir şey dosya adı olarak kullanılmaya çalışılıyor ve böyle bir dosya olmadığı için başarısız oluyor. Parça tanımlayıcısını çıkarırsam, sayfa görüntülenir, ancak doğru yerde değil. Sonra sonradan parça tanımlayıcı buna pozisyonunu ayarlayarak, parça tanımlayıcı olmadan loadRequest yapıyor bölüm betimleyici onurlandırmak için loadRequest veya

  • alma ya

    • bir yolu var mı?
  • cevap

    0

    Parça tanımlayıcısını (hashTag) ayırmanız ve ardından URL'nin geri kalanını UIWebview uygulamasına vermeniz gerekir.

    NSRange range = [url rangeOfString: @"#"]; 
    if (range.location == NSNotFound) { 
        hashTag = nil; 
    } 
    else { 
        hashTag = [url substringFromIndex: range.location]; 
        url = [url substringToIndex:range.location]; 
    } 
    

    Sonra bir UIWebViewDelegate olarak viewController kurmak ve sayfa yüklendikten söylenmesi için bekleyin: Böyle yapabilirsiniz. Yüklendikten sonra, hashTag:

    - (void) webViewDidFinishLoad: (UIWebView *) localWebView { 
    
        if (hashTag != nil) { 
         NSString * javaScript = [[NSString alloc] initWithFormat: @"window.location.hash = '%@'", hashTag]; 
         [webView stringByEvaluatingJavaScriptFromString:javaScript]; 
         hashTag = nil; 
        } 
    
    } 
    
    tarafından belirtilen konuma gitmek için javascript komutunu kullanabilirsiniz.
    İlgili konular