嵌入式推文有时无法在WKWebView中完全加载

时间:2019-05-24 14:15:16

标签: ios swift twitter embed wkwebview

我正在尝试在iOS上的Swift的WKWebViews中加载一些嵌入式推文。由于不再支持本机Twitter SDK,因此我使用Twitter oembed API(https://developer.twitter.com/en/docs/twitter-for-websites/embedded-tweets/overview.html)获得html内容。 有时,该推文无法完全加载,有时可以:

two muppets 如您在此屏幕截图中所见,第一个tweet不会加载图像,按钮,字体...但是第二个tweet可以成功加载。

我曾尝试在队列中一个一个地加载推文,因为我认为同时加载所有推文是个问题……但不幸的是没有成功。

我得到这样的tweet HTML:

func getEmbeddedTweet(url: String, completion: @escaping (_ html: String?) -> Void) -> Void {
        let twitterUrl = "https://publish.twitter.com/oembed?hide_thread=true&url="+url
        Alamofire.request(twitterUrl).responseJSON { response in
            switch response.result {
            case .success(let JSON):
                if let response = JSON as? NSDictionary, let html = response.object(forKey: "html") as? String {
                    completion(html)
                }
            case .failure(_):
                completion(nil)
            }
        }
    }

我像这样简单地加载它:

self.webView!.loadHTMLString(html, baseURL: nil)

我希望每条推文都能正确加载。 有人以前曾经遇到过这个问题吗?谢谢!