- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler
{
if ([navigationAction.request.URL.relativeString hasPrefix:kLocalContentPrefix])
{
// Show some local content
// Don't let the webview load this URL.
decisionHandler(WKNavigationActionPolicyCancel);
}
else
{
// Allow the webview to load this URL.
decisionHandler(WKNavigationActionPolicyAllow);
}
}
2 回答
要使用WKWebView执行此操作,您需要符合WKNavigationDelegate,并设置webView的
navigationDelegate
.您可能正在寻找的方法是
- webView:decidePolicyForNavigationAction:decisionHandler:
,您可以在其中确定是否允许链接触摸 . 您可以从navigationAction.request.URL
获取目标网址 .一个简单的例子:
要在UIWebView中执行此操作,它几乎相同,只是您在UIWebViewDelegate中符合
-(BOOL)webView:shouldStartLoadWithRequest:navigationType:
. 但我建议尽可能使用Webkit!有一种解决方法,由Shazron在Objective-C中演示,这里将文件复制到/ tmp / www并从那里加载它们 .