从 webView goBack 后 PDF 不加载

Posted

技术标签:

【中文标题】从 webView goBack 后 PDF 不加载【英文标题】:PDF does not load after goBack from webView 【发布时间】:2017-09-15 08:08:53 【问题描述】:

我目前正在使用 webView 显示 pdf。在这个 pdf 中,我有到其他网站的超链接。

问题是,当我转到其中一个网站并在那里滚动一点时,当我单击后退按钮(调用 webView.goBack())时,它会返回 pdf,跳到顶部并且可以不再滚动它,除了第一页之外什么都看不到,所以它也可能无法正确加载。

另外,如果我也这样做,请访问该网站,但根本不要在那里滚动,或者根本不做任何事情。如果我点击后退按钮,它会带我回到 pdf 并且工作得很好。

那么对于这里可能出现的问题以及如何解决它有什么建议吗?

编辑:我还添加了一张图片来展示它的外观

【问题讨论】:

您的 webView 是否启用了 userInteraction 和滚动功能? 是的,我确实启用了它。在点击超链接之前它确实可以正常工作 【参考方案1】:

我为此找到的解决方案是在委托方法中再次显示pdf时重新加载webView

点击导航栏后退按钮时:

fileprivate var shouldReloadWebView: Bool = false

@objc private func tappedBackButton(_ button: UIButton) 
  if webView.canGoBack 
    shouldReloadWebView = true
    webView.goBack()
   else 
    self.navigationController!.popViewController(animated: true)
  

在委托方法中:

func webViewDidFinishLoad(_ webView: UIWebView) 
  if shouldReloadWebView 
    shouldReloadWebView = false
    webView.reload()
  

【讨论】:

以上是关于从 webView goBack 后 PDF 不加载的主要内容,如果未能解决你的问题,请参考以下文章

WebView goback() 重新加载最后一页

使用 Intent.ACTION_CREATE_DOCUMENT 选择文件后保存从 WebView 生成的 PDF 文件

iOS13 和 14,WebView didFinish 不起作用。调用 goBack() 后从第二页返回时不调用

iOS uiwebview goBack 历史控件

检测特定视图是不是为 webview

如何从可以在新 PDF 中选择文本的 WebView 导出 PDF