123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- //
- // NYWebViewController.swift
- // JSJP_Student_sw
- //
- // Created by Ning.ge on 2023/6/1.
- //
- import UIKit
- import WebKit
- import RxSwift
- final class NYWebViewController: BaseViewController {
- private var link: String
- private lazy var webView: WKWebView = {
- let webView = WKWebView(frame: .zero)
- return webView
- }()
-
- init(link:String) {
-
- self.link = link
- super.init()
- }
-
- required init?(coder aDecoder: NSCoder) {
- fatalError("init(coder:) has not been implemented")
- }
-
- override func setupConstraints() {
-
- webView.snp.makeConstraints { (make) in
- make.edges.equalToSuperview()
- }
-
- }
-
- override func viewWillAppear(_ animated: Bool) {
- super.viewWillAppear(animated)
- self.navigationController?.setNavigationBarHidden(false, animated: true)
- }
-
- override func viewDidLoad() {
- super.viewDidLoad()
-
- view.addSubview(webView)
-
- setupWebView()
-
- }
- private func setupWebView() {
-
- webView.navigationDelegate = self
- webView.allowsBackForwardNavigationGestures = true
-
- if let linkURL = URL(string: link) {
- webView.load(URLRequest(url: linkURL))
-
- }
- }
-
- private func adjustScrollViewTop() {
- if #available(iOS 11, *) {
- webView.scrollView.contentInsetAdjustmentBehavior = .never
- }else{
- self.automaticallyAdjustsScrollViewInsets = false
- }
- }
-
-
- }
- extension NYWebViewController: WKNavigationDelegate {
-
- func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
- self.setLeftItems()
- self.setRightItems()
- title = webView.title
- //webView.evaluateJavaScript("document.getElementsByClassName(\"top-holder\")[0].hidden = true;", completionHandler: nil)
- }
-
- func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error) {
- NYSwToaster.show("被禁止访问了???")
- }
-
- func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
-
- if navigationAction.targetFrame == nil {
- webView.load(navigationAction.request)
- }
- decisionHandler(.allow)
- }
- }
- //MARK: - setBarButtonItem
- extension NYWebViewController {
-
- private func setLeftItems() {
- let backItem = UIBarButtonItem(image: NYImage.Home.back?.withRenderingMode(.alwaysOriginal), style: .plain, target: self, action: #selector(back))
-
- let closeButton = UIButton(type: .custom)
- closeButton.setTitle("关闭", for: .normal)
- closeButton.setTitleColor(UIColor.db_white, for: .normal)
- closeButton.titleLabel?.font = NYFont.SysFont.sys_16
- closeButton.rx.tap.subscribe(onNext: {[unowned self] _ in
- self.close()
- }).disposed(by: disposeBag)
- let closeItem = UIBarButtonItem(customView: closeButton)
-
- self.navigationItem.leftBarButtonItems = [backItem,closeItem]
- }
-
- private func setRightItems() {
-
- let moreImage = NYImage.Home.more?.with(color: UIColor.db_white)
-
- let moreItem = UIBarButtonItem(image:moreImage?.withRenderingMode(.alwaysOriginal), style: .plain, target: self, action: #selector(more))
- self.navigationItem.rightBarButtonItem = moreItem
- }
-
- @objc private func back() {
-
- if webView.canGoBack {
- webView.goBack()
- }else{
- self.navigationController?.popViewController(animated: true)
- }
- }
-
- private func close() {
- self.navigationController?.popViewController(animated: true)
- }
-
- @objc private func more() {
-
- }
- }
|