WKWebView 애니메이션 재생 정보 ~ U I W i n d o w D i dBecome Hidden Notification ~
12170 단어 SwiftWKWebViewNotification
그래서 내가 가장 고민하는 것은:
"WebView를 닫을 때 UIImageView에 고정 이미지를 표시합니다."
실현하고자 하는 내용
기능 프로세스는 다음과 같습니다.
① 그림(분홍색 그림)의 재생 단추를 누르면 애니메이션을 재생합니다
② WebView를 전체 화면으로 표시
③ WebView의×단추를 눌렀을 때 첫 번째 그림과 리셋 단추를 표시합니다
완성품 영상!
설치 내용
① WebView 구성 결정
private var webView: WKWebView!
@IBOutlet var webViewContainer: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
webView = WKWebView(frame: CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: self.view.frame.size.height))
webView.allowsBackForwardNavigationGestures = true
② 동작 방법에 지정된 웹 페이지 읽기
@IBAction func playButtonAction(_ sender: UIButton) {
guard let url = URL(string: "http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8") else {
return
}
let urlRequest = URLRequest(url: url)
webView.load(urlRequest)
self.view.addSubview(webView)
}
참고로 다른 사람의 보도를 보면 대부분viewDidLoad()로 페이지webView.load(urlRequest)
를 읽는다.이번 웹뷰가 꺼진 후 동영상이 처음부터 재생될 수 있도록 동작 방법 내에서 페이지를 읽었다.
③ WebView를 닫은 후 이미지 표시
여기까지 오기 전에 힘들었어요.💦
vieDidliad() 내
// スクリーンを閉じたかどうか監視
NotificationCenter.default.addObserver(self,
selector: #selector(movieStoppedPlaying),
name: Notification.Name.UIWindowDidBecomeHidden,
object: nil)
완료된 항목에 movieStoppedPlaying()
내에 웹 뷰를 삭제했다고 쓰여 있습니다.WKNavigationDelegate를 사용해야 합니까?여러 가지 고민이 있었지만.
Notification으로 구현됨🌸
잊지 말고removeObserver도 진행하세요.
deinit {
NotificationCenter.default.removeObserver(self)
}
겸사겸사 iOS 9 이후를 대상으로 한 구축 중NotificationCenter.default.removeObserver(_:name:object:)
deinit에 쓰지 않아도 됩니다.<참조: https://fromatom.hatenablog.com/entry/2017/12/13/135542>
완성
모든 소스 코드
import UIKit
import WebKit
class ViewController: UIViewController {
var webView: WKWebView!
@IBOutlet var webViewContainer: UIImageView!
@IBAction func playButtonAction(_ sender: UIButton) {
guard let url = URL(string: "http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8") else {
return
}
let urlRequest = URLRequest(url: url)
webView.load(urlRequest)
self.view.addSubview(webView)
}
deinit {
NotificationCenter.default.removeObserver(self)
}
override func viewDidLoad() {
super.viewDidLoad()
webView = WKWebView(frame: CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: self.view.frame.size.height))
webView.allowsBackForwardNavigationGestures = true
// スクリーンを閉じたかどうか監視
NotificationCenter.default.addObserver(self,
selector: #selector(movieStoppedPlaying),
name: Notification.Name.UIWindowDidBecomeHidden,
object: nil)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
@objc func movieStoppedPlaying(notification: Notification?) {
webView.removeFromSuperview()
}
}
잊지 말고 쓰십시오import webKit
🌸총결산
이번에 WKWebView를 사용한 영상의 설치 상황을 조사한 결과 참고 자료가 생각보다 적었다(;)
나는 실상에서 어려움을 겪을 때 너를 도울 수 있는 기사를 끊임없이 보낼 수 있었으면 좋겠다고 생각한다.
그리고 끊임없이 자신의 기술을 향상시켜라!
참고 자료
아래의 보도와 블로그를 참고하게 해 주세요.
감사합니다!
https://www.i-enter.co.jp/blog/blog/2015/03/13/%E3%80%90ios%E3%80%91nsnotificationcenter%E3%81%A7%E5%9B%B0%E3%81%A3%E3%81%9F%EF%BC%81/
https://qiita.com/on0z/items/9768d2bccc29cc4e1851
http://kzy52.com/entry/2015/02/20/000838
https://qiita.com/shunyooo/items/d03a714af4dadd0727a6
https://fromatom.hatenablog.com/entry/2017/12/13/135542
Reference
이 문제에 관하여(WKWebView 애니메이션 재생 정보 ~ U I W i n d o w D i dBecome Hidden Notification ~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/narum-29/items/32442de6b4cb3d692ef5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)