我有一个带有网络视图控制器的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;
}