2012-08-10 30 views
9

Tôi gặp sự cố với phương pháp didFinishLoad trong UIWebView đang tiếp tục kích hoạt. Tôi muốn thử ước tínhProject solution, tuy nhiên tôi không biết nơi để tìm những khung không may. Tôi đang chạy Mountain Lion và sử dụng phiên bản mới nhất của XCode. Ngoài ra, đối với các UIWebView bắn nhiều lần, đây là cách tốt nhất để đi hoặc có phương pháp mới. Có vẻ như là một javascript answer trên SO, tuy nhiên điều đó không làm việc cho tôi. Đó là ngày trở lại trong năm 2009, và tôi nghe nói rằng Apple từ chối bất kỳ ứng dụng nào sử dụng API riêng tư. Xin hãy giúp tôi ra khỏi đây!Cách tìm tải cuối cùng của UIWebView (Ready State 4)

Cảm ơn mọi người!

Trả lời

2

gì về việc giữ gìn theo dõi số lượng yêu cầu chưa thanh toán? Tôi whipped lên một số mã kiểm tra điều đó dường như làm việc:

@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 

(Tạo một dự án mẫu Xcode và thay thế AppDelegate.m của bạn với điều này)

+0

giải pháp tốt ! khá thú vị! –

+0

vâng. điều này làm việc cho tôi. –

0

Nếu theo các khuôn khổ bạn ngụ ý các tệp .h được nhập trong mã trên trang bạn đã liên kết, here's the link để tải xuống trực tiếp các tệp đó. Để được trợ giúp thêm, bạn cần phải xây dựng thêm.

EDIT: Ngoài ra, vui lòng xem: NSURLConnection NSURLRequest proxy for asynchronous web service calls

Câu trả lời liên quan giải thích làm thế nào để NSURLRequest để yêu cầu một kết nối và nhận được callbacks khác nhau cho tiểu bang khác nhau của yêu cầu, chẳng hạn như - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data

+0

Về cơ bản câu hỏi là để vượt qua tất cả 4 tải quan điểm web và thực hiện trạng thái tải trang sẵn sàng 4 –

+0

@ chaitanya.varanasi Bạn có ý nghĩa gì với "trạng thái sẵn sàng 4"? –

+0

trạng thái sẵn sàng là loại sự kiện dựa trên nơi trang web đi qua trạng thái tải có 4 trạng thái như vậy –

Các vấn đề liên quan