MJWKWebViewController.swift 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. //
  2. // MJWKWebViewController.swift
  3. // MJRefreshExample
  4. //
  5. // Created by Frank on 2021/3/3.
  6. // Copyright © 2021 小码哥. All rights reserved.
  7. //
  8. import UIKit
  9. import WebKit
  10. // 在实际的工程中, 使用以下 Import module 即可
  11. //import MJRefresh
  12. @objc
  13. class MJWKWebViewController: UIViewController {
  14. var webView: WKWebView!
  15. func example41() {
  16. MJChiBaoZiHeader { [weak self] in
  17. self?.webView.reload()
  18. }.autoChangeTransparency(true)
  19. .link(to: webView.scrollView)
  20. webView.scrollView.mj_header?.beginRefreshing()
  21. }
  22. }
  23. // MARK: 🌈 无关例子的样式构建方法
  24. extension MJWKWebViewController {
  25. override func viewDidLoad() {
  26. super.viewDidLoad()
  27. constructViews()
  28. }
  29. override func viewWillAppear(_ animated: Bool) {
  30. super.viewWillAppear(animated)
  31. navigationController?.setNavigationBarHidden(true, animated: true)
  32. setNeedsStatusBarAppearanceUpdate()
  33. }
  34. override func viewWillDisappear(_ animated: Bool) {
  35. super.viewWillDisappear(animated)
  36. navigationController?.setNavigationBarHidden(false, animated: true)
  37. }
  38. override var prefersStatusBarHidden: Bool {
  39. true
  40. }
  41. private func constructViews() {
  42. webView = WKWebView(frame: view.frame)
  43. webView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
  44. view.addSubview(webView)
  45. webView.navigationDelegate = self
  46. let size = view.frame.size
  47. let warningLabel = UILabel(frame: CGRect(x: size.width - 210, y: size.height - 160, width: 200, height: 50))
  48. warningLabel.text = "注意,这不是原生界面,是个网页:http://weibo.com/excepptions"
  49. warningLabel.adjustsFontSizeToFitWidth = true
  50. warningLabel.textColor = .black
  51. warningLabel.backgroundColor = UIColor.lightGray.withAlphaComponent(0.3)
  52. warningLabel.numberOfLines = 0
  53. let mask: UIView.AutoresizingMask = [.flexibleRightMargin, .flexibleBottomMargin]
  54. warningLabel.autoresizingMask = mask
  55. webView.addSubview(warningLabel)
  56. let backButton = UIButton(frame: CGRect(x: size.width - 210, y: size.height - 100, width: 200, height: 50))
  57. backButton.setTitle("回到上一页", for: .normal)
  58. backButton.backgroundColor = .red
  59. backButton.autoresizingMask = mask
  60. backButton.addTarget(self, action: #selector(back), for: .touchUpInside)
  61. webView.addSubview(backButton)
  62. webView.load(URLRequest(url: URL(string: "http://weibo.com/exceptions")!))
  63. example41()
  64. }
  65. @objc
  66. func back() {
  67. navigationController?.popViewController(animated: true)
  68. }
  69. }
  70. extension MJWKWebViewController: WKNavigationDelegate {
  71. func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
  72. webView.scrollView.mj_header?.endRefreshing()
  73. }
  74. }