Как обнаружить изменение страницы в UIWebView и что-то сделать, прежде чем он начнет загружаться? - PullRequest
8 голосов
/ 15 января 2010

Мне нужно что-то сделать при каждом изменении страницы, прежде чем эта страница начнет загружаться / выполняться.

Сначала я попытался использовать -webView:shouldStartLoadWithRequest:, но это не сработало, потому что оно также вызывалось для запросов XHR и запросов iframe.

Во-вторых, я попытался использовать -webViewDidStartLoad: и сравнить webView.request с его предыдущим значением, чтобы увидеть, изменилось ли оно. Это не работает, потому что webView.request обновляется только через некоторое время после вызова.

Есть еще идеи?

Ответы [ 3 ]

10 голосов
/ 14 марта 2011

Объект запроса в webView: shouldStartLoadWithRequest: имеет два свойства,

BOOL iframe = ![request.URL isEqual:request.mainDocumentURL];

Если URL-адрес для загрузки не равен mainDocumentURL, вы загружаете что-то, кроме основного документа (возможно, iFrame).

1 голос
/ 22 января 2011

Вы пытались использовать КВО для наблюдения UIWebView.request?

0 голосов
/ 20 января 2010

Создайте категорию или расширьте UIWebview, который переопределяет loadRequest, выполняя сначала вашу операцию, а затем выполняя стандартный loadRequest.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...