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,就像常规浏览器一样。
- 如何将导航器引用传递给React Native <Drawer />?
- 为什么在iOS Safari Mobile(iPhone / iPad)中没有触发模糊事件?
- 来自共享或操作扩展ios的网络请求
- React-Native:无法访问状态值或从renderRow声明的任何方法
- 从UIWebView的W / Swift中获取多个div元素的属性到我的iOS应用程序中
- 在React Native中处理来自OneSignal的远程推送通知
- 使用XHR2请求而不是cordova-file-transfer将二进制数据下载到应用程序沙箱中
- 检查touchend是否在拖动之后
- 如何debuggingWKWebView中的JavaScript代码