0
  1. 我在 webViewDidStartLoad 中隐藏 webview:
  2. 提出要求
  3. 在 webViewDidFinishLoad 中创建 stringByEvaluatingJavaScriptFromString:
  4. 显示网页视图

但是当我运行应用程序时,我可以看到 JS 是如何工作的。我的错在哪里?

另外,我在 self.webView.hidden = FALSE; 前后写了 NSLog(@"%@", self.webView)

<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];
}
4

2 回答 2

0

你的错可能在stringByEvaluatingJavaScriptFromString. 除非您向我们展示一些代码,否则我们将无法为您提供帮助。

于 2011-10-05T10:41:32.430 回答
0

这并不简单,但它有效:

我们可以在 webViewDidFinishLoad 方法之后显示 webView 并花费 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;
}
于 2011-10-06T12:37:25.610 回答