美文网首页iOS开发常用
WKWebView加载网页,点击页面中的链接没反应

WKWebView加载网页,点击页面中的链接没反应

作者: 匿名的他 | 来源:发表于2016-08-26 14:50 被阅读5619次

昨天在使用iOS8新出的WKWebView中,遇到了个小问题,特此记录:加载jsp页面后,页面中的链接点击没反应,跟了断点发现请求的url也正常,但是就是点击没反应,最终才知道jsp页面的:

<a href="xxx.jsp" target="_blank"/>  这个target参数是_blank

如果WKWebView中的网页,点击链接木有反应,那么很有可能是这个用户点击网页上的链接,需要打开新页面时,将先调用这个方法。

func webView(webView: WKWebView, decidePolicyForNavigationAction navigationAction: WKNavigationAction, decisionHandler: (WKNavigationActionPolicy) -> Void) {
  let requestUrlStr = navigationAction.request.URL?.absoluteString
//需要判断targetFrame是否为nil,如果为空则重新请求
  if navigationAction.targetFrame == nil {
     webView.loadRequest(navigationAction.request)
  }
  decisionHandler(.Allow)
  ...
}

这个方法的参数 WKNavigationAction 中有两个属性:sourceFrame和targetFrame,分别代表这个action的出处和目标。类型是 WKFrameInfo 。WKFrameInfo有一个 mainFrame 的属性,正是这个属性标记着这个frame是在主frame里还是新开一个frame。

如果 targetFrame 的 mainFrame 属性为NO,表明这个 WKNavigationAction 将会新开一个页面。

相关文章

网友评论

    本文标题:WKWebView加载网页,点击页面中的链接没反应

    本文链接:https://www.haomeiwen.com/subject/geczsttx.html