【问题标题】:iOS UIWebView, how to block a certain URL pattern from loading?iOS UIWebView,如何阻止某个 URL 模式加载?
【发布时间】:2015-06-24 18:31:02
【问题描述】:

我有一个带有 Web 视图控制器的 iOS 应用程序,它是 Web 视图的代表。 我希望我的 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?

【问题讨论】:

    标签: javascript ios objective-c filter uiwebview


    【解决方案1】:

    您可以检查关键字是否在请求的 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;
    }
    

    【讨论】:

      猜你喜欢
      • 2015-12-07
      • 2012-06-13
      • 2013-03-14
      • 2012-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多