#twitter #youtube #wkwebview
Вопрос:
Хорошо, я понимаю, что задаю здесь довольно конкретный вопрос, но я не смог решить его самостоятельно.
У меня есть WKWebView, и я использую его для отображения встроенной временной шкалы твитов из одной учетной записи. Таким образом, HTML, загруженный в веб-представление, выглядит следующим образом:
lt;htmlgt; lt;headgt; lt;meta id=""mw-viewport"" name=""viewport"" content=""width=device-width, minimum-scale=1, maximum-scale=1, initial-scale=1.0""/gt; lt;meta charset=""utf-8"" /gt; lt;/headgt; lt;body style='padding: 0; margin: 0'gt; lt;a class="twitter-timeline" href="https://twitter.com/WeMakeApps?ref_src=twsrc^tfw"gt;Tweets by WeMakeAppslt;/agt; lt;script async src="https://platform.twitter.com/widgets.js" charset="utf-8"gt;lt;/scriptgt; lt;/bodygt; lt;/htmlgt;
Все это загружается просто великолепно, и я даже реализовал WKWebViewNavigationDelegate
так, чтобы ссылки открывались в Safari.
Для твитов, содержащих ссылку на YouTube, вы получаете это плакатное изображение видео на YouTube с синей кнопкой с белой рамкой и треугольником. Вы нажимаете эту кнопку, а затем элемент перезагружается с помощью встроенного проигрывателя YouTube. Теперь вам нужно нажать еще раз, чтобы действительно воспроизвести видео.
Я попытался изменить WKWebViewConfiguration.mediaTypesRequiringUserActionForPlayback
свойство на .none
(также устаревшее WKWebViewConfiguration.requiresUserActionForMediaPlayback
свойство), но ни одно из них не изменило поведение.
Когда эти твиты загружаются в браузер на рабочем столе, они выглядят одинаково, но затем видео с YouTube начинают автоматически воспроизводиться после загрузки проигрывателя YouTube (поэтому достаточно одного клика). Если я загружу Twitter в Safari на свой телефон, мне все равно понадобится 2 нажатия (как в встроенной версии), но я предполагаю, что это потому, что Safari запрещает автоматическое воспроизведение видео без действий пользователя.
Спасибо!