//
|
// AuthRecordView.swift
|
// OKProject
|
//
|
// Created by 杨锴 on 2023/6/12.
|
// Copyright © 2023 yangwang. All rights reserved.
|
//
|
|
import UIKit
|
import WebKit
|
|
class AuthRecordView: UIView,LDNibView{
|
|
@IBOutlet weak var view_container: UIView!
|
@IBOutlet weak var webView: WKWebView!
|
private var viewModel:AgreementViewModel!
|
private var clouse:(()->Void)!
|
|
override func awakeFromNib() {
|
super.awakeFromNib()
|
view_container.transform = .init(scaleX: 0.1, y: 0.1)
|
alpha = 0
|
layoutIfNeeded()
|
|
webView.navigationDelegate = self
|
|
viewModel = AgreementViewModel()
|
viewModel.type.accept(.vioceRecord)
|
viewModel.agreement()
|
viewModel.requestSubject.subscribe { status in
|
switch status{
|
case .success(let m):
|
guard let data: SwitchCityModel = m as? SwitchCityModel else {return}
|
self.webView.loadHTMLString(data.content, baseURL: nil)
|
case .error(let error):
|
alert(text: error.localizedDescription)
|
case .loading:
|
break
|
}
|
} onError: { error in
|
|
}.disposed(by: rx.disposeBag)
|
|
}
|
|
static func show(_ clouse:@escaping ()->Void){
|
let authRecordView = AuthRecordView.ld_loadNibView()
|
authRecordView.clouse = clouse
|
authRecordView.frame = app.window?.frame ?? .zero
|
app.window?.addSubview(authRecordView)
|
|
UIView.animate(withDuration: 0.4) {
|
authRecordView.view_container.transform = .init(scaleX: 1.0, y: 1.0)
|
authRecordView.alpha = 1
|
}
|
}
|
|
@IBAction func settingAction(_ sender: UIButton) {
|
UIView.animate(withDuration: 0.4) {
|
self.view_container.transform = .init(scaleX: 0.1, y: 0.1)
|
self.alpha = 0
|
} completion: { _ in
|
self.removeFromSuperview()
|
self.clouse()
|
}
|
}
|
|
@IBAction func closeAction(_ sender: UIButton) {
|
UIView.animate(withDuration: 0.4) {
|
self.view_container.transform = .init(scaleX: 0.1, y: 0.1)
|
self.alpha = 0
|
} completion: { _ in
|
self.removeFromSuperview()
|
}
|
}
|
}
|
|
extension AuthRecordView:WKNavigationDelegate{
|
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
|
let jsString = "var meta = document.createElement('meta'); meta.setAttribute('name', 'viewport'); meta.setAttribute('content', 'width=device-width, initial-scale=1.0, minimum-scale=1, maximum-scale=1, user-scalable=no'); document.getElementsByTagName('head')[0].appendChild(meta);"
|
webView.evaluateJavaScript(jsString)
|
}
|
}
|