截获UIWebView的Request

本文介绍如何通过继承UIWebViewDelegate协议并实现特定方法,在不跳转URL的情况下,对UIWebView中的请求进行拦截处理,从而实现个性化网页交互功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文为博主原创,转载请注明出处: http://blog.youkuaiyun.com/xiemotongye/article/details/9247177

UIWebView也许你常用的一个控件,它相当于一个内置的safari浏览器,用它浏览网页非常方便好用。

但是我们毕竟是开发app的,单纯的网页浏览也许无法满足我们的需求。也许你会遇到这样的需求:点击网页中的某个链接,但是此时WebView并不需要跳转到那个链接所指向的URL,而是想让app内部做一些有趣的事情,这个想法可以实现吗?

答案是肯定的,为了截获UIWebView中的Request,我们的controller首先要继承UIWebViewDelegate协议。然后实现协议中的方法:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType。

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSString *urlStr = [request.URL absoluteString];

    // here is your request URL
    NSString *theURL = @"http://xxxxx";

    if ([urlStr isEqualToString:theURL]) {
        // do something interesting here.
        return NO;
    }
    
    return YES;
}
如果请求地址和你设定的theURL相同,则做些有趣的事情,这时的“return NO;”表示UIWebView将直接截获request,不会发生页面跳转。如果改成“return YES;”则不但可以做些有趣的事情,而且request依然可以发送出去。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值