同步UIWebview请求

时间:2012-01-24 03:17:51

标签: ios uiwebview synchronous

我目前正在开发一个epub应用程序。

所以我使用UIWebView来渲染我的epub(html)。 但是,对于动画原因,我想同步加载我的请求。

我该怎么做?

我尝试使用sendSynchronousRequest,但没有成功(我的请求仍然是异步的)。 http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSURLConnection_Class/Reference/Reference.html

3 个答案:

答案 0 :(得分:2)

如果您的问题与UIWebView在呈现HTML时引入的延迟有关,那么您不希望向用户显示空白页面,并且只在大约一秒钟后呈现的页面,唯一的方法是我想出来的是:

  1. 最初有UIWebView隐藏;

  2. 定义webViewDidFinishLoad,以便在触发时,Web视图可见。

  3. 如果您将UIWebView放入正面视图并正确定义其alpha,则可以通过此方法获得良好的过渡效果。

答案 1 :(得分:0)

同步和异步之间用户体验方面唯一真正的区别在于,在前一种情况下,用户界面会冻结。因此,如果这是您想要的效果,请在启动请求时将所有userInteractionEnabled属性设置为NO,并在connectionDidFinishLoading:完成请求后重新启用它们。

答案 2 :(得分:-2)

我认为您可以将html作为字符串获取:

NSError * error;
NSURL * url = [NSURL URLWithString:@"http://www.yoururl.com"];
NSString * htmlContent = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:&error];

加载html:

[webView loadHTMLString:htmlContent baseURL:url];