90 lines
2.6 KiB
Swift
90 lines
2.6 KiB
Swift
//
|
||
// 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)
|
||
}
|
||
}
|