【问题标题】:How to request desktop site in Swift programmatically (without UIWebView)?如何以编程方式在 Swift 中请求桌面站点(没有 UIWebView)?
【发布时间】:2018-06-17 17:28:34
【问题描述】:

桌面网站的 HTML 代码在标题中有一个“apple-touch-icon”缩略图链接,而移动网站没有。 我只需要获取这个 html 并解析。

那么,如何请求桌面站点(可能通过 URLRequest、URLSession 或其他方式)?

附言 我发现,我必须更改 User-Agent 字符串值,但同样,我没有找到,如何在 Swift 中执行此操作。

【问题讨论】:

  • 没有webview?为什么没有webview?链接只需要html?
  • 是的。我需要在 HTML 代码中存储指向该站点的缩略图图像的链接。就这样。我不会显示页面

标签: html ios request thumbnails user-agent


【解决方案1】:

取决于服务器逻辑,但在大多数情况下,在您的请求中设置 userAgent Header 就足够了:

let url = URL(string:"https://google.com")!
var request = URLRequest(url: url)
let userAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/605.1.12 (KHTML, like Gecko) Version/11.1 Safari/605.1.12"
request.addValue(userAgent, forHTTPHeaderField: "User-Agent")

let task = URLSession.shared.dataTask(with: request) { (data, response, error) in
 // Process reponse
}
task.resume()

【讨论】:

    【解决方案2】:

    WKWebView 应该可以解决您的问题 - 您可以在代码中定义它。这样做:

    var webView : WKWebView!
    override func loadView() {
        super.loadView()
    
        let config = WKWebViewConfiguration()
        webView = WKWebView(frame: self.view.frame, configuration: config)
        self.webView!.uiDelegate = self
        webView.customUserAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36"
        //load URL here
        let url = NSURL(string: "https://stackoverflow.com/")!
        webView.load(URLRequest(url: url as URL))
        self.view.addSubview(webView)
    
    
    }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多