gpt4 book ai didi

ios - 使用 Swift 3 将 iframe 标签(视频)从 html 字符串加载到 Web View 中

转载 作者:行者123 更新时间:2023-11-30 12:04:24 24 4
gpt4 key购买 nike

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://"))

关于ios - 使用 Swift 3 将 iframe 标签(视频)从 html 字符串加载到 Web View 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46830118/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com