Проблема с WKWebView - PullRequest
       40

Проблема с WKWebView

0 голосов
/ 29 апреля 2020

Я перенес UIWebview в WKWebView и использую WKWebview для загрузки HTML для создания PDF. После успешной загрузки WKWebView HTML я использую следующие функции для генерации PDF, а на iOS 13 и более поздних iOS работает нормально, но на устройствах iOS 13 он показывает пустые страницы. Если кто-то может помочь, то было бы здорово.

здесь (https://drive.google.com/open?id=1jHcnhHm800QhN5ik6fJuWZx8K64DjyWq), я создал демо для большего визуального понимания. Он отлично работает на iOS 13.0 и более поздних версиях, но не работает ниже iOS 13.0

/// Function is used to export the PDF save in directory based on created HTML String.
func exportHTMLContentToPDF(formatter: UIViewPrintFormatter,HTMLContent: String) {
    let printPageRenderer = CustomPrintPageRenderer()
    printPageRenderer.addPrintFormatter(formatter, startingAtPageAt: 0)
    let height = strDisclaimer.height(withConstrainedWidth: 592, font: UIFont(name: "DINNextLTPro-Regular", size: 10)!)
    let pdfData = drawPDFUsingPrintPageRenderer(printPageRenderer: printPageRenderer, footerDisclaimerHeight: height)
    pdfFilename = "\(ScreenshotManager.shared.getDocDir())/\(Bundle.main.bundleName) - \(ScreenshotManager.shared.hospitalName ?? "") - \(Date().getDateWithFormat(formatter: "dd-MM-yyyy") ?? "").pdf"
    pdfData?.write(toFile: pdfFilename, atomically: true)
    print(pdfFilename ?? "")
}

/// Function is used to draw page and return the DATA.
func drawPDFUsingPrintPageRenderer(printPageRenderer: CustomPrintPageRenderer,footerDisclaimerHeight : CGFloat) -> NSData! {

    let usLetterWidth: CGFloat = 612.0
    let usLetterHeight: CGFloat = 792.0

    let data = NSMutableData()

    UIGraphicsBeginPDFContextToData(data, CGRect.zero, nil)

    for index in 0..<printPageRenderer.numberOfPages {
        if index == 0 {
            printPageRenderer.headerHeight = 0
            printPageRenderer.footerHeight = footerDisclaimerHeight + 50
            UIGraphicsBeginPDFPageWithInfo(CGRect(x: 0.0, y: 0.0, width: usLetterWidth, height: usLetterHeight - 100), nil)
            printPageRenderer.drawPage(at: index, in: UIGraphicsGetPDFContextBounds())
        } else {
            printPageRenderer.headerHeight = 23.0
            printPageRenderer.footerHeight = 10.0
            UIGraphicsBeginPDFPageWithInfo(CGRect(x: 0.0, y: 0.0, width: usLetterWidth, height: usLetterHeight), nil)
            printPageRenderer.drawPage(at: index, in: UIGraphicsGetPDFContextBounds())
        }            
    }

    UIGraphicsEndPDFContext()
    return data
}
...