我有一个带有Web视图控制器的iOS应用程序,它是Web视图的委托。 我希望我的UIWebView永远不会显示具有某个关键字或网址的一部分的网址。(在我的情况下,我想阻止来自应用服务器的误导性错误页面,该页面可能出现在对任何请求的回应)。
我正在听这些事件:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {}
-(void)webViewDidFinishLoad:(UIWebView *)webView{}
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {}
我不确定听这些事件是否足以确保所有内部页面重定向(包括javascript的重定向)都会被检查,并且将阻止加载违规网址。
如何创建永远不会显示某个页面的UIWebView?
答案 0 :(得分:4)
您可以检查关键字是否在请求的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;
}