UIWebView无法正确加载JavaScript – 嵌入式Facebookpost

Facebook有这个新function,允许用户将公共post嵌入到网页中。 我想尝试在UIWebView中的iPhone应用程序中使用它。 转义必要的代码非常简单,但即使我手动转义代码,Web视图也不会正确加载post。 JavaScript根本不起作用。

class WebViewController: UIViewController{ @IBOutlet weak var webView: UIWebView! override func viewDidLoad() { loadFacebookPost() } func loadFacebookPost(){ //Code from Facebook as a string var myHTML: String = "
(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = \"//connect.facebook.net/sv_SE/sdk.js#xfbml=1&version=v2.3\"; fjs.parentNode.insertBefore(js, fjs);}(document, 'script', 'facebook-jssdk'));

Steven Tyler made this girl's day!

Posted by Best Vines on den 2 oktober 2015
" webView.loadHTMLString(myHTML, baseURL: nil) }

这是我试图嵌入的post

这就是它的显示方式

在此处输入图像描述

我用myHTML里面的所有引号替换了。我错过了什么?

编辑

我也试过这个解决方案。 这次视图是空白的,没有显示任何内容。 码:

 import Foundation import UIKit import WebKit class WebViewController: UIViewController{ @IBOutlet var uiview: UIView! var webView: WKWebView? override func loadView() { super.loadView() self.webView = WKWebView() self.uiview = self.webView! } override func viewDidLoad() { super.viewDidLoad() loadFacebookPost() } func loadFacebookPost(){ var path = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as! NSString path = path.stringByAppendingString("/myHTML.html") var textHTML: String = "
(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = \"//connect.facebook.net/sv_SE/sdk.js#xfbml=1&version=v2.3\"; fjs.parentNode.insertBefore(js, fjs);}(document, 'script', 'facebook-jssdk'));

Steven Tyler made this girl's day!

Posted by Best Vines on den 2 oktober 2015
" var ok: Bool = textHTML.writeToFile(path as String, atomically: true, encoding: NSUTF8StringEncoding, error: NSErrorPointer()) if ok { println("Write done!") var url: NSURL = NSURL.fileURLWithPath(path as String, isDirectory: false)! webView!.loadRequest(NSURLRequest(URL: url)) } else { println("Error!") } } }

我通过使用GCDWerbServer解决了这个问题: https : //github.com/swisspol/GCDWebServer

因此,我使用服务器加载本地css文件,js和图像,使您能够为Web视图基本URL设置http链接。 在这样做之后,Facebook发布了video,就像常规浏览器一样。