如何在UIWebView中检测页面更改并在开始加载之前执行某些操作?

Jak*_*čar 8 iphone uiwebview

在页面开始加载/执行之前,我需要对每个页面更改执行一些操作.

首先,我尝试使用-webView:shouldStartLoadWithRequest:但不起作用,因为它也需要XHR请求和iframe请求.

其次,我尝试使用-webViewDidStartLoad:并与webView.request之前的值进行比较,看看它是否发生了变化.这不起作用,因为webView.request在呼叫后仅更新一段时间.

还有什么想法吗?

Lee*_*ins 10

webView中的请求对象:shouldStartLoadWithRequest:有两个属性,

BOOL iframe = ![request.URL isEqual:request.mainDocumentURL];
Run Code Online (Sandbox Code Playgroud)

如果要加载的URL不等于mainDocumentURL,则表示您正在加载除main doc之外的其他内容(可能是iFrame).


Dav*_*wsy 0

创建一个类别或扩展覆盖 loadRequest 的 UIWebview,首先执行您的操作,然后执行标准 loadRequest。