我正在使用以下代码显示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)
哪些代码在模拟器上运行得很好,但是在真实设备上它无法加载。我将以下定义为app transport security:
奇怪的是我下载了iOS Helper library,但结果是一样的。而且永远不会调用委托方法。在他们的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>
答案 0 :(得分:0)
什么是您的模拟器和设备的操作系统版本? OS版本是否相同?可能不同的UIWebView可能会触发错误。
同时检查
答案 1 :(得分:0)
我必须回答我自己的问题。问题是我曾经通过实现所需的委托来显示UITableViewHeader
内的视频:
我只有一个部分所以只有当section == 0
我不知道究竟是什么导致了这个问题时才返回值,但是可能多次调用该方法会导致这个问题。我所做的只是简单地在UIWebView
内移动viewWillAppear
的初始化并将其设置为tableViewHeaderView
。所以我现在只设置一次,问题就消失了:
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
dispatch_once(&token) {
self.initHeader()
}
}