123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- //
- // BaseWebViewController.swift
- // RainbowPlanet
- //
- // Created by 南鑫林 on 2019/3/8.
- // Copyright © 2019 南鑫林. All rights reserved.
- //
- import UIKit
- import WebKit
- class BaseWebViewController: BaseViewController {
-
-
- override func viewDidLoad() {
- super.viewDidLoad()
- setupViews()
- setupLayouts()
- }
-
- override func didReceiveMemoryWarning() {
- super.didReceiveMemoryWarning()
- // Dispose of any resources that can be recreated.
- }
-
- //加载普通URL
- var URLString : String?
- //加载本地URL
- var HTMLName : String?
- //加载本地的js
- var scriptMessageHandlerArray : Array<Any>?
- //POST加载字典
- var parameters = [String : Any]()
-
- //MARK: - view
- override func setupViews() {
- view.addSubview(wkWebView)
- }
- override func setupLayouts() {
- }
-
- //MARK: - action
- @objc private func backAction() {
-
- self.wkWebView.webView.stopLoading()
- if self.wkWebView.webView.canGoBack {
- self.wkWebView.webView.goBack()
- }else {
- self.navigationController?.popViewController(animated: true)
- }
- }
-
-
- //MARK: - lazy
-
- lazy var wkWebView: WebView = {
- let wkWebView = WebView.init(frame: CGRect(x: 0, y: kNavBarTotalHeight, width: kScreenWidth, height: kScreenHeight - kNavBarTotalHeight))
- wkWebView.delegate = self
- wkWebView.webConfig = webConfig
- //// 加载普通URL
- if (URLString != nil) {
- wkWebView.webloadType(self, .URLString(url: URLString!))
- }
-
- // 加载本地URL
- if (HTMLName != nil && scriptMessageHandlerArray != nil) {
- webConfig.scriptMessageHandlerArray = scriptMessageHandlerArray as! [String]
- wkWebView.webloadType(self, .HTMLName(name: HTMLName!))
- }
-
- // POST加载
- if !parameters.isEmpty && URLString != nil {
- wkWebView.webloadType(self, .POST(url: URLString!, parameters: parameters))
- }
-
- return wkWebView
- }()
-
- lazy var webConfig: WKWebViewConfig = {
- var webConfig = WKWebViewConfig()
- return webConfig
- }()
-
- }
- extension BaseWebViewController:WKWebViewDelegate{
- /// 服务器开始请求的时候调用
- func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void){
-
- }
-
- /// 页面开始加载
- func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!){
-
- }
-
- /// 页面加载完成
- func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!){
-
- }
-
- /// 跳转失败的时候调用
- func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error){
-
- }
-
- /// 内容加载失败
- func webView(_ webView: WKWebView, didFailProvisionalNavigation navigation: WKNavigation!, withError error: Error){
-
- }
-
- /// 执行JS注入方法
- func webViewUserContentController(_ scriptMessageHandlerArray:[String], didReceive message: WKScriptMessage){
-
- }
-
- /// JS执行回调方法
- func webViewEvaluateJavaScript(_ result:Any?,error:Error?){
-
- }
- }
|