2011-10-05 29 views
0
  1. 我隱藏的WebView在webViewDidStartLoad:
  2. 製作要求
  3. 在webViewDidFinishLoad
  4. 製作stringByEvaluatingJavaScriptFromString:
  5. 顯示的WebView

但是當我運行的應用程序,我可以看到JS工作。哪裏是我的錯嗎?UIWebView.hidden和JavaScript

另外,我寫的NSLog(@ 「%@」,self.webView)之前和之後self.webView.hidden = FALSE;

<UIWebView: 0x5e37720; frame = (0 44; 768 955); hidden = YES; autoresize = W+H; layer = <CALayer: 0x5e37780>> 
<UIWebView: 0x5e37720; frame = (0 44; 768 955); autoresize = W+H; layer = <CALayer: 0x5e37780>> 

FirstViewController.m:

- (void)webViewDidStartLoad:(UIWebView *)webView{ 
self.webView.hidden = TRUE; 
} 

- (void)webViewDidFinishLoad: (UIWebView *) webView { 
    [self useJScript:self.webView]; 
NSLog(@"Show %@", self.webView);//result above^^^ 
self.webView.hidden = FALSE; 
NSLog(@"Showned %@", self.webView); 
} 

- (void)useJScript:(UIWebView *) webView{ 
NSLog(@"Применяю jscript для %@",webView); 
NSString *path = [[NSBundle mainBundle] pathForResource:@"jsmain" ofType:@"html"]; 
NSFileHandle *readHandle = [NSFileHandle fileHandleForReadingAtPath:path]; 
NSString *htmlString = [[NSString alloc] initWithData: 
         [readHandle readDataToEndOfFile] encoding:NSUTF8StringEncoding]; 
[webView stringByEvaluatingJavaScriptFromString:htmlString]; 
} 

回答

0

這並不簡單,但它的工作原理:

我們可以webViewDidFinishLoad方法後,顯示web視圖,並採取0.2秒(也不要緊用戶)來完成的JScript它。

只需添加[self performSelector:@selector(hidden_false) withObject:nil afterDelay:0.2 ];webViewDidFinishLoad方法。而

-(void) hidden_false{ 
self.webView.hidden = FALSE; 
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO; 
} 
0

你的錯,可能是在stringByEvaluatingJavaScriptFromString。 除非你告訴我們一些代碼,我們將無法幫助你。