2016-03-19 8 views
2

Я использую следующий код для отображения видео с YouTube: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) 

Какой код отлично работает на тренажере, однако на реальном устройстве он не загружается. Я определил следующее в качестве приложения транспортной безопасности:

transport security

Странно то, что я скачал iOS Helper library, но результат тот же. Кроме того, методы делегатов никогда не называются. На их странице github у них много открытых проблем, поэтому я думаю, что это не мой лучший выбор.

Любая помощь будет высоко оценена.

EDIT

мне удалось отладить, как моя страница 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

Я должен ответить на мой собственный вопрос. Проблема заключалась в том, что я использовал, чтобы показать видео внутри UITableViewHeader путем осуществления необходимых делегатов:

viewForHeaderInSection

heightForHeaderInSection

Я только один раздел, так что я возвращаемые значения там только если section == 0 я не знаю, что точно вызывает эту проблему, но, вероятно, это приводит к множественному вызову метода. То, что я сделал, это просто переместить инициализацию UIWebView внутри viewWillAppear и установить его как tableViewHeaderView. Поэтому я сейчас устанавливаю его только один раз, и проблема не исчезла:

override func viewWillAppear(animated: Bool) { 
    super.viewWillAppear(animated) 

    dispatch_once(&token) { 
     self.initHeader() 
    } 
} 
0

Что OS версии вашего тренажера и устройства? Это же версия ОС? Может отличаться UIWebView может вызвать ошибку.

Проверить это также

Playing youtube using <iframe> fails on iPhone, but still works for iPad under iOS 6 (both work fine on iOS 5)

+0

Не полезно к сожалению. Устройство Iphone 6 с iOS 9.2.1, симулятор с 9.2 –

Смежные вопросы