我有一个带有网络视图控制器的iOS应用,该控制器是网络视图的代表。 我希望UIWebView永远不要显示具有特定关键字或URL一部分的URL。 (就我而言,我想阻止来自应用服务器的误导性错误页面,该页面可能会响应任何请求而出现)。

我正在听这些事件:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {}
-(void)webViewDidFinishLoad:(UIWebView *)webView{}
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {}

我不确定监听这些事件是否足以确保检查所有内部页面重定向(包括javascript的重定向),并防止加载有害的URL。

如何创建永远不会显示特定页面的UIWebView?

最佳答案

您可以检查关键字是否在所请求的URL中,并通过返回false停止加载页面。我假设您要查找的关键字将出现在URL中?我们假设它是errorPage。

-(BOOL) webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSURL *requestedURL = request.URL
    NSString *stringCheck = requestedURL.absoluteString;
// This is the important part--check if errorPage is in the URL.
    NSRange range = [urlString rangeOfString:@"errorPage"];
    if (range.location == NSNotFound)
        return YES;
    else
        return NO;
}

10-05 21:06
查看更多