我正在使用以下代码来显示youtube视频:
webViewVideo.hidden = false
webViewVideo.allowsInlineMediaPlayback = true
webViewVideo.mediaPlaybackRequiresUserAction = false
let youtubeIfarme = "<html><body><iframe src=\"http://www.youtube.com/embed/\(youtubeId)?playsinline=1\" width=\"\(CGRectGetWidth(loadedView.frame) - CGFloat(16))\" height=\"\(CGRectGetHeight(webViewVideo.frame))\" frameborder=\"0\" allowfullscreen></iframe></body></html>"
webViewVideo.loadHTMLString(youtubeIfarme, baseURL: NSBundle.mainBundle().bundleURL)
哪个代码在模拟器上可以很好地工作,但是在实际设备上却无法加载。我将以下定义为应用程序传输安全性:
奇怪的是,我下载了iOS Helper库,但结果是一样的。此外,永远不会调用委托方法。在他们的github页面上,他们有很多未解决的问题,所以我想这不是我最好的选择。
任何帮助将不胜感激。
编辑
我设法调试了我的HTML页面在模拟器上的UIWebView内部的外观(通过Safari Develop将其连接):
<html><head></head><body><iframe src="http://www.youtube.com/embed/KIiUqfxFttM?playsinline=1" width="359.0" height="350.0" frameborder="0" allowfullscreen=""></iframe></body></html>
我必须回答我自己的问题。问题是我以前UITableViewHeader
通过实现所需的委托来在内部显示视频:
我只有一个部分,因此仅当section == 0
我不知道到底是什么导致该问题时才在那儿返回值,但是可能多次调用该方法导致此问题。我所做的是只需移动的初始化UIWebView
内viewWillAppear
并将其设置为tableViewHeaderView
。所以我现在只设置一次,问题就解决了:
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
dispatch_once(&token) {
self.initHeader()
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句