我有一个带有 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/