Ответ 1
Интегрируйте следующий код, чтобы решить проблему.
-(void)viewWillDisappear:(BOOL)animated
{
[webView loadHTMLString:nil baseURL:nil];
}
В моем приложении iPad у меня модальный вид (UIViewController
с модальным стилем презентации UIModalPresentationPageSheet
)
Внутри представления находится UIWebView с HTML-страницей и встроенным YouTube-Video. Если я запустил видео и закрою представление, видео не остановится. Звук продолжается, и вы можете увидеть небольшой значок воспроизведения рядом с значком аккумулятора в строке состояния.
Как остановить видео?
Интегрируйте следующий код, чтобы решить проблему.
-(void)viewWillDisappear:(BOOL)animated
{
[webView loadHTMLString:nil baseURL:nil];
}
Также вы можете попробовать приостановить видео:
NSString *script = @"var videos = document.querySelectorAll(\"video\"); for (var i = videos.length - 1; i >= 0; i--) { videos[i].pause(); };";
[webView stringByEvaluatingJavaScriptFromString:script];
В методе Swift:
override public func viewDidDisappear(animated: Bool) {
super.viewDidAppear(animated)
self.webView.loadHTMLString("", baseURL: nil)
}
спасибо @alloc_iNit
Я видел, что есть много предложений с загрузкой пустой страницы. Это действительно плохой подход.
Это приведет к тому, что ваш веб-просмотр будет пустым, если, скажем, вы нажмете на него другой вид.
Самое простое решение - перезагрузить представление с помощью:
Свифта
webView.reload()
Obj-C
[webView reload]
Swift 4
// Halt anything in progress
(contentViewController as! WebViewController).webView.loadHTMLString("Yoink://", baseURL: nil)
необходимый в окне windowController windowShouldClose() при закрытии окна