enter image description here

它显示灰色框,但只有黑色边框...未显示视频!
提示:加载函数仅接受数据类型,不接受字符串...但是转换后,没有任何事情发生!

@IBOutlet weak var webView: UIWebView!

func callWS(){
    let  url = URL(string: "endpoint url")

    let config = URLSessionConfiguration.default
    let session = URLSession(configuration: config)


    let task = session.dataTask(with: url!, completionHandler: {

        (data, response, error) in

        if error != nil
        {
            print("Error")
        }
        else
        {
            if let content = data
            {
                do {
                    let myJSON = try JSONSerialization.jsonObject(with: content) as? [String:Any]

                    let text:String = myJSON?["text"] as! String

                    let textData:Data = text.data(using: .utf8)!

                    //self.webView.loadHTMLString(text, baseURL: nil) no frame
                    self.webView.load(textData, mimeType: "text/html", textEncodingName: "utf8", baseURL: NSURL() as URL)
                }
                catch {}
            }
        }
    })

    task.resume()
}

最佳答案

您应该可以使用.loadHTMLString()。将您的代码更改为:

    let myJSON = try JSONSerialization.jsonObject(with: content) as? [String:Any]

    let text:String = myJSON?["text"] as! String

    self.webView.loadHTMLString(text, baseURL: URL(string: "https://"))


您可能还必须先替换多余的转义字符。没有您的实际要求来获取JSON数据,我无法完全复制它以进行测试-但我必须删除它们才能使HTML格式正确。

因此,如果最终显示的是标签,而不是被解析为标签:

adassa dasdas dsadas .<\/p>


这意味着JSON字符串实际上包含无效字符,因此您可能想要这样做:

    let myJSON = try JSONSerialization.jsonObject(with: content) as? [String:Any]

    let text:String = myJSON?["text"] as! String

    // remove the extra "\" escape chars
    let cleanedText = text.replacingOccurrences(of: "\\/", with: "/")

    self.webView.loadHTMLString(cleanedText, baseURL: URL(string: "https://"))

10-07 19:43
查看更多