MoviaBox/ShortPlay/Base/WebView/SPWebViewController.swift
2025-04-14 16:32:48 +08:00

90 lines
2.6 KiB
Swift
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// SPWebViewController.swift
// ShortPlay
//
// Created by on 2025/4/14.
//
import UIKit
import WebKit
class SPWebViewController: SPViewController {
var urlStr: String?
private lazy var webView: SPWebView = {
let controller = WKUserContentController()
let config = WKWebViewConfiguration()
config.userContentController = controller
config.preferences.javaScriptEnabled = true
/** JS */
config.preferences.javaScriptCanOpenWindowsAutomatically = true
let webView = SPWebView(frame: self.view.bounds, configuration: config)
webView.delegate = self
return webView
}()
override func viewDidLoad() {
super.viewDidLoad()
configNavigationBack()
_setupUI()
if let url = urlStr {
self.load(urlString: url)
}
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.setNavigationBarHidden(false, animated: true)
self.setNavigationNormalStyle()
}
func load(urlString: String) {
// guard let url = URL(string: "https://www.baidu.com") else { return }
var str: String = urlString
// if let userToken = ETLoginManager.manager.userInfo?.userToken {
// if urlString.contains("?") {
// str = urlString + "&userToken=\(userToken)"
// } else {
// str = urlString + "?userToken=\(userToken)"
// }
// }
guard let url = URL(string: str) else { return }
var request = URLRequest(url: url, cachePolicy: .reloadIgnoringLocalCacheData, timeoutInterval: 30)
// if ETLoginManager.manager.isLogin, let userToken = ETLoginManager.manager.userInfo?.userToken {
// request.setValue(userToken, forHTTPHeaderField: "userToken")
// }
self.webView.load(request)
}
}
extension SPWebViewController {
private func _setupUI() {
self.view.addSubview(webView)
self.webView.frame = self.view.bounds
self.webView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
}
}
//MARK: -------------- ETWebViewDelegate --------------
extension SPWebViewController: SPWebViewDelegate {
func webView(webView: SPWebView, didChangeTitle title: String) {
self.title = title
}
func webView(_ webView: SPWebView, didFailLoadWithError error: any Error) {
spLog(message: error)
}
}