我的目标是加载远程html,替换标签并在webview中显示它。一切正常,但isUserInteractionEnabled = true它不起作用。我知道这是因为我不能向下滚动。我认为这是关于在session.dataTask()中调用self.webView.loadHTMLString(html!,baseURL:nil)。我的问题是:有没有更好的方法来实现这一目标?
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var webView: UIWebView!
override func viewDidLoad() {
super.viewDidLoad()
let url = "https://example.com"
let requestURL = URL(string:url)
var request = URLRequest(url: requestURL!)
request.httpMethod = "GET"
let session = URLSession.shared
self.webView.isUserInteractionEnabled = true
session.dataTask(with: request) { (data, response, err) in
let html = String(data: data!, encoding: String.Encoding.utf8) as String!
self.webView.loadHTMLString(html!, baseURL: nil)
}.resume()
// webView.loadRequest(request)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
答案 0 :(得分:0)
您应该使用 UIWebView
的API来加载请求,而不是URLSession
:
override func viewDidLoad() {
super.viewDidLoad()
let url = "https://www.google.com"
let requestURL = URL(string:url)
let request = URLRequest(url: requestURL!)
webView.loadRequest(request)
}
击> <击> 撞击>
修改我认为您只是想显示该网页。我相信为了转换您使用html
下载的URLSession
然后呈现它,您可能需要尝试ascii
编码而不是uft8
。
您也不必在isUserInteractionEnabled
上设置UIWebView
,因为它是默认值(检查storyboard/xib
,当您拖动{{1}类型的对象时,它应该已被勾选}})
但请注意,以这种方式加载网页会导致其他问题,因为不会下载像images / css / etc这样的单独资源,因此在呈现后网页可能看起来“已损坏”