iOS13 WKWebView透明背景

时间:2019-09-20 14:52:40

标签: html uiwebview wkwebview ios13 swift5.1

在iOS12下,以下代码在WKWebView中显示了透明背景。

但是,在iOS13下,情况不再如此-为什么?以及如何再次实现透明背景?

我尝试了

@IBOutlet weak var webView: WKWebView!

override func viewDidLoad() {
    super.viewDidLoad()

    webView.scrollView.bounces = false
    webView.navigationDelegate = self

    let body =
        "<html>\n" +
            "<head>\n" +
                "<style>\n" +
                    "html { margin: 0; }" +
                    "body { margin: 0; font-family: Avenir-Light; font-size: 41; color: white; background-color: transparent }\n" +
                    "a, a:active, a:visited, a:hover { color: #FFED00 }\n" +
                "</style>\n" +
            "</head>\n" +
            "<body>\n" +
            article.body +
            "</body>\n" 
        "</html>"

    webView.loadHTMLString(body, baseURL: nil)
}

添加以下内容无济于事...

webView.isOpaque = false
webView.backgroundColor = .clear

奇怪的是,如果我设置的背景色不是透明的,那么它可以工作:

即通过替换以下内容,我得到了红色背景:

"body { margin: 0; font-family: Avenir-Light; font-size: 41; color: white; background-color: red }\n"

transparent为什么不起作用? (我也尝试过clear-但没有成功)

1 个答案:

答案 0 :(得分:2)

要重复我的评论作为答案。这是Apple自己的iOS 13错误。他们使用13.1修复了该错误。我在运行13.0的同一设备上复制了它,然后将iOS更新到13.1,问题消失了。无法用代码来解决此问题,只是希望所有用户都已从13.0更新到13.1。