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

昨天在使用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 将会新开一个页面。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容