最近一个项目,为了尝鲜,就抛弃了iOS7,最低兼容iOS8 项目中的UIWebView 也换成WKWebView了,使用起来就是输入,再也不用担心进度条了,可是,偶然间却发现部分网页里面的 "a"标签点击没反应, 后来发现 这些不会跳转的link 都有一个共同点,那就是跳转方式
都为<a href = "xxx" target = "_black">
原来 "_black" 是开一个新的页面 打开网页,就像safari中弹出一个新的页面显示一样 但是在项目中我们并没有让他打开一个新的页面,所以就会导致点击没反应 解决方法也很简单,判断如果不是在本页面打开 就重新 load一下 也可以 调用safari打开
在 WKWebView的代理方法中 加入面的判断即可
-(void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler
{
//如果是跳转一个新页面
if (navigationAction.targetFrame == nil) {
[webView loadRequest:navigationAction.request];
}
decisionHandler(WKNavigationActionPolicyAllow);
}