Подтвердить что ты не робот

Остановить видео в UIWebView

В моем приложении iPad у меня модальный вид (UIViewController с модальным стилем презентации UIModalPresentationPageSheet)

Внутри представления находится UIWebView с HTML-страницей и встроенным YouTube-Video. Если я запустил видео и закрою представление, видео не остановится. Звук продолжается, и вы можете увидеть небольшой значок воспроизведения рядом с значком аккумулятора в строке состояния.

Как остановить видео?

4b9b3361

Ответ 1

Интегрируйте следующий код, чтобы решить проблему.

    -(void)viewWillDisappear:(BOOL)animated
    {
        [webView loadHTMLString:nil baseURL:nil];
    }

Ответ 2

Также вы можете попробовать приостановить видео:

NSString *script = @"var videos = document.querySelectorAll(\"video\"); for (var i = videos.length - 1; i >= 0; i--) { videos[i].pause(); };";
[webView stringByEvaluatingJavaScriptFromString:script];

Ответ 3

В методе Swift:

override public func viewDidDisappear(animated: Bool) {
    super.viewDidAppear(animated)
    self.webView.loadHTMLString("", baseURL: nil)
}

спасибо @alloc_iNit

Ответ 4

Я видел, что есть много предложений с загрузкой пустой страницы. Это действительно плохой подход.

Это приведет к тому, что ваш веб-просмотр будет пустым, если, скажем, вы нажмете на него другой вид.

Самое простое решение - перезагрузить представление с помощью:

Свифта

webView.reload()

Obj-C

[webView reload]

Ответ 5

Swift 4

//  Halt anything in progress
(contentViewController as! WebViewController).webView.loadHTMLString("Yoink://", baseURL: nil)

необходимый в окне windowController windowShouldClose() при закрытии окна