Видео из локального хранилища не воспроизводится в WebView (Xamarin.Forms) после последнего обновления iOS (12.2) - PullRequest
6 голосов
/ 10 апреля 2019

У меня есть приложение Xamarin Forms для Android и iOS, которое отображает некоторый контент HTML из локального хранилища (целью является просмотр этого контента в автономном режиме) в WebView.

После последнего обновления iOS (12.2) перестали работать видео в этом HTML. На месте видео отображается белый фон с символом «Воспроизвести», но никакие действия невозможны.

The problem

Я попытался изменить тег видео для включения автозапуска, отключения звука, но безуспешно.

<video width="560" height="315" controls>
<source src="Absolute-3D.mp4" type="video/mp4">
</video>

Я ожидаю, что он продолжит работать так же, как и до обновления, но что-то его блокирует.

Ответы [ 5 ]

2 голосов
/ 10 мая 2019

Это ошибка UIWebView, я добавляю приведенный ниже код, теперь он работает.

self.webView.mediaPlaybackRequiresUserAction = NO;
self.webView.allowsPictureInPictureMediaPlayback = YES;
1 голос
/ 02 мая 2019

Попробуйте установить mediaPlaybackRequiresUserAction в NO для веб-просмотра.Я вижу ту же проблему (UIWebView и WKWebView оба) в iOS 12.2.Прекрасно работает в iOS 12.1 и более ранних версиях.

При отладке вы видите эту ошибку в консоли safari:

Необработанный отказ от обещания: NotAllowedError: Запрос не разрешен пользовательским агентом илиплатформа в текущем контексте, возможно, потому что пользователь отказал в разрешении

https://developer.apple.com/documentation/uikit/uiwebview/1617954-mediaplaybackrequiresuseraction?language=objc

https://developer.apple.com/documentation/webkit/wkwebviewconfiguration/1614727-mediaplaybackrequiresuseraction?language=objc

0 голосов
/ 21 июня 2019

Вы должны добавить это в свой список

NSIncludesSubdomains и NSTemporaryExceptionAllowsInsecureHTTPLoads

Как это:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
    <key>NSIncludesSubdomains</key>
    <true/>
    <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
    <true/>
</dict>
0 голосов
/ 10 мая 2019

Unhandled Promise Rejection: NotAllowedError: Запрос не разрешен пользовательским агентом или платформой в текущем контексте, возможно, из-за того, что пользователь отказал в разрешении.Это еще не решено.

0 голосов
/ 19 апреля 2019

Я заменил UIWebView (который теперь устарел) на WKWebView, и он, кажется, снова работает, ничего не меняя в html-коде.

В консоли есть сообщение о том, что полноэкранный режим не авторизован втекущий контекст.Для меня тоже это происходит только на реальном устройстве.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...