javascript - iOS UIWebView,如何阻止加载特定的 URL 模式?

标签 javascript ios objective-c filter uiwebview

我有一个带有 WebView Controller 的 iOS 应用程序,它是 WebView 的委托(delegate)。 我希望我的 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;
}

关于javascript - iOS UIWebView,如何阻止加载特定的 URL 模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31034271/

相关文章:

javascript - 如何正确地将 django csrf_token 附加到内联 javascript 中?

ios - 使用代码更改 UITabbar 外观

ios - 从呈现的 ViewController 动态更改导航栏后退按钮文本

iphone - 多个按钮可以有一个 socket 吗?

iphone - 连接两个 View Controller 时出错

javascript - 类型 ORM QueryFailedError PostgreSQL

javascript - 带有 v-model 的 Vuex 输入不是 react 性的

javascript - HTML - 哪个元素输出文本?

ios - 在运行时从字符串中从代码访问 UILabel

ios - 如何在 View 中通过 CAShapeLayer 绘制垂直虚线?