синхронный запрос UIWebview - PullRequest
0 голосов
/ 24 января 2012

Я сейчас работаю над приложением epub.

Так что я использую UIWebView для отображения моего epub (html). Но по причине анимации я хотел бы загрузить свой запрос синхронно.

Как я могу это сделать?

Я пытался использовать sendSynchronousRequest, но безуспешно (мой запрос все еще был асинхронным). http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSURLConnection_Class/Reference/Reference.html

Ответы [ 3 ]

2 голосов
/ 24 января 2012

Если ваша проблема связана с задержкой, которую UIWebView вводит при рендеринге HTML, так что вы не хотите показывать пользователю пустую страницу и только через секунду или около того визуализированную страницу, единственный способ, которым я пришелчтобы справиться с этим:

  1. с изначально скрытым UIWebView;

  2. , определяющим webViewDidFinishLoad, чтобы при запуске вебпредставление становится видимым.

Если вы поместите ваш UIWebView в составное представление и правильно определите его alpha, вы сможете получить хорошие переходы с помощью этого подхода.

0 голосов
/ 24 января 2012

Единственная реальная разница с точки зрения взаимодействия пользователя между синхронным и асинхронным заключается в том, что в первом случае пользовательский интерфейс зависает.Поэтому, если вы хотите именно этого эффекта, просто установите все свойства userInteractionEnabled на NO при запуске запроса и включите их снова после завершения запроса в connectionDidFinishLoading:.

0 голосов
/ 24 января 2012

Я думаю, что вы можете получить 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];
...