2012-08-10 17 views
9

Mam problem z metodą didFinishLoad w , która nadal trwa. Chcę wypróbować estymowaną wersjęProgress solution, ale nie wiem, gdzie znaleźć te framewiry. Używam Mountain Lion i używam najnowszej wersji XCode. Również w przypadku wielokrotnego uruchamiania UIWebView jest to najlepszy sposób na przejście lub istnieją nowe metody. Wydaje się, że na SO jest javascript answer, ale to nie działało dla mnie. Data ta została wydana w 2009 roku i słyszę, że Apple odrzuca każdą aplikację korzystającą z prywatnego interfejsu API. Proszę pomóż mi tutaj!Jak znaleźć ostatni ładunek UIWebView (Ready State 4)

Dziękuję wszystkim!

Odpowiedz

2

Co o utrzymanie śledzenie liczby zaległych wniosków? I bitą trochę kodu testu, który wydaje się działać:

@interface WebViewDelegate : NSObject<UIWebViewDelegate> 
@property (nonatomic) NSUInteger numberOfRunningRequests ; 
@end 

@implementation WebViewDelegate 

-(void)webViewDidStartLoad:(UIWebView *)webView 
{ 
    self.numberOfRunningRequests = self.numberOfRunningRequests + 1 ; 
} 

-(void)webViewDidFinishLoad:(UIWebView *)webView 
{ 
    self.numberOfRunningRequests = self.numberOfRunningRequests - 1 ; 
    if (self.numberOfRunningRequests == 0) 
    { 
     NSLog(@"done!\n") ; 
    } 
} 

@end 

@implementation AppDelegate 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    // Override point for customization after application launch. 
    self.window.backgroundColor = [UIColor whiteColor]; 
    [self.window makeKeyAndVisible]; 

    UIWebView * webView = [[ UIWebView alloc ] initWithFrame:self.window.bounds ] ; 
    static WebViewDelegate * delegate = nil ; 
    delegate = [[ WebViewDelegate alloc ] init ] ; 
    webView.delegate = delegate ; 

    [self.window addSubview:webView ] ; 
    NSURLRequest * request = [ NSURLRequest requestWithURL:[ NSURL URLWithString:@"http://stackoverflow.com"] ]; 
    [ webView loadRequest:request ] ; 
    return YES; 
} 

@end 

(Utwórz przykładowy projekt Xcode i zastąpić AppDelegate.m z tym)

+0

fajne rozwiązanie ! dość ciekawe! –

+0

tak, ładnie. to działa dla mnie. –

0

Jeśli przez frameworki rozumie się pliki .h importowane w kodzie na stronie, z którą się łączysz, here's the link, aby pobrać je bezpośrednio. Aby uzyskać dalszą pomoc, musisz opracować więcej.

EDIT: Dodatkowo proszę zobaczyć: NSURLConnection NSURLRequest proxy for asynchronous web service calls

prowadzi link odpowiedź wyjaśnia jak NSURLRequest żądania połączenia i uzyskać różne wywołania zwrotne dla różnych stanów żądanie, takich jak - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data

+0

Zasadniczo kwestia jest ominąć wszystkie 4 ładowanie widoku internetowej i dokonać stan załadowania strony 4 –

+0

@ chaitanya.varanasi Co masz na myśli przez "stan gotowości 4"? –

+0

Stan gotowości jest rodzajem zdarzenia opartego na zdarzeniu, w którym strona przechodzi przez stany ładowania istnieją 4 stany jako takie –