Избегайте дополнительного нажатия для воспроизведения видео на YouTube, которое отображается во встроенном твите в WKWebView

#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 запрещает автоматическое воспроизведение видео без действий пользователя.

Спасибо!