HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – WKWebView显示灰色背景,pdf内容在viewcontroller开关上不可见大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我从WKWebView中的主包或文档目录加载pdf文件.它最初加载完美,但它显示灰色背景,如果我在tabbar控制器中切换选项卡后回到同一屏幕,则pdf内容不可见.这是我用来加载的代码

class ViewController: UIViewController {

    @IBOutlet var progressview: UIProgressview!
    @IBOutlet var webView: WKWebView!

    var pdfURLS: URL?

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view,typically from a nib.

        pdfURLS = Bundle.main.url(forresource: "97_pdf",withExtension: "pdf",subdirectory: nil,localization: nil)
    }

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        print("pdfURLS: \(String(describing: pdfURLS))")
    }

    @IBACtion func loadAction(_ sender: Any) {
        if let pdfURL = pdfURLS  {
            self.webView.loadFileURL(pdfURL,allowingReadAccessTo: pdfURl.deletingLastPathComponent())
        }
    }
}

有人对这个问题有所了解吗?

ios – WKWebView显示灰色背景,pdf内容在viewcontroller开关上不可见

附有图像参.如果我使用不推荐使用的UIWebView,则不存在此类问题,但我不想使用已弃用的库.

解决方法

我们在Firefox for iOS中遇到了这个问题:

https://bugzilla.mozilla.org/show_bug.cgi?id=1516524

我也在WebKit bug中引用了这篇SO帖子:

https://bugs.webkit.org/show_bug.cgi?id=193281

目前,我们找到了一个解决方法

let prevIoUsZoomScale = webView.scrollView.zoomScale
let prevIoUsContentOffset = webView.scrollView.contentOffset

if let currentItem = webView.BACkForWARDList.currentItem {
    webView.go(to: currentItem)
}

DispatchQueue.main.asyncAfter(deadline: .Now() + .milliseconds(100)) {
    webView.scrollView.setZoomScale(prevIoUsZoomScale,animated: falsE)
    webView.scrollView.setContentOffset(prevIoUsContentOffset,animated: falsE)
}

基本上,我们重新访问后退/前进历史记录列表中的URL,重新绘制PDF,然后我们恢复滚动视图位置/缩放.它不是很好,但它的工作原理.

大佬总结

以上是大佬教程为你收集整理的ios – WKWebView显示灰色背景,pdf内容在viewcontroller开关上不可见全部内容,希望文章能够帮你解决ios – WKWebView显示灰色背景,pdf内容在viewcontroller开关上不可见所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。