|
@@ -0,0 +1,138 @@
|
|
|
+//
|
|
|
+// BackyardActivityViewController.swift
|
|
|
+// RainbowPlanet
|
|
|
+//
|
|
|
+// Created by 南鑫林 on 2019/10/9.
|
|
|
+// Copyright © 2019 RainbowPlanet. All rights reserved.
|
|
|
+//
|
|
|
+
|
|
|
+import UIKit
|
|
|
+import WebKit
|
|
|
+import WebViewJavascriptBridge
|
|
|
+import SwiftyJSON
|
|
|
+
|
|
|
+class BackyardActivityViewController: BaseJSWebViewController {
|
|
|
+
|
|
|
+ deinit {
|
|
|
+ NXLLog("deinit")
|
|
|
+ if observe != nil {
|
|
|
+ NotificationCenter.default.removeObserver(observe!)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ weak var observe : NSObjectProtocol?
|
|
|
+
|
|
|
+ override func viewDidLoad() {
|
|
|
+ super.viewDidLoad()
|
|
|
+
|
|
|
+ self.URLString = kH5PlanetUrl
|
|
|
+ navigationBar.isHidden = true
|
|
|
+ setupViews()
|
|
|
+ setupData()
|
|
|
+ }
|
|
|
+
|
|
|
+ override func viewWillAppear(_ animated: Bool) {
|
|
|
+ super.viewWillAppear(animated)
|
|
|
+ navigationController?.navigationBar.isHidden = true
|
|
|
+ if UserModel.isTokenNil() {
|
|
|
+ statusBarStyle = .default
|
|
|
+ }else {
|
|
|
+ statusBarStyle = .lightContent
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ override func didReceiveMemoryWarning() {
|
|
|
+ super.didReceiveMemoryWarning()
|
|
|
+ // Dispose of any resources that can be recreated.
|
|
|
+ }
|
|
|
+
|
|
|
+ //MARK: - view
|
|
|
+ override func setupViews() {
|
|
|
+ super.setupViews()
|
|
|
+ self.wkWebView.frame = CGRect(x: 0, y: 0, width: kScreenWidth, height: kScreenHeight-kTabBarTotalHeight)
|
|
|
+ self.wkWebView.navigationDelegate = self
|
|
|
+ }
|
|
|
+ override func setupData() {
|
|
|
+ super.setupData()
|
|
|
+
|
|
|
+ WebViewJavascriptBridgeManager.shared.callHandlerH5(bridge: bridge)
|
|
|
+
|
|
|
+ WebViewJavascriptBridgeManager.shared.registerHandlerApp(bridge: bridge) { (wvjbModel) in
|
|
|
+ WebViewJavascriptBridgeManager.shared.jump(wvjbModel: wvjbModel)
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+extension BackyardActivityViewController : WKNavigationDelegate {
|
|
|
+
|
|
|
+ //服务器开始请求的时候调用
|
|
|
+ func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
|
|
|
+
|
|
|
+ let navigationURL = navigationAction.request.url?.absoluteString
|
|
|
+ if let requestURL = navigationURL?.removingPercentEncoding {
|
|
|
+ //拨打电话
|
|
|
+ //兼容安卓的服务器写法:<a class = "mobile" href = "tel://电话号码"></a>
|
|
|
+ //或者:<a class = "mobile" href = "tel:电话号码"></a>
|
|
|
+ if requestURL.hasPrefix("tel://") {
|
|
|
+ //取消WKWebView 打电话请求
|
|
|
+ decisionHandler(.cancel);
|
|
|
+ //用openURL 这个API打电话
|
|
|
+ if let mobileURL:URL = URL(string: requestURL) {
|
|
|
+ if #available(iOS 10, *) {
|
|
|
+ UIApplication.shared.open(mobileURL, options: [:], completionHandler: nil)
|
|
|
+ } else {
|
|
|
+ UIApplication.shared.openURL(mobileURL)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ switch navigationAction.navigationType {
|
|
|
+ case WKNavigationType.linkActivated:
|
|
|
+ pushCurrentSnapshotView(navigationAction.request as NSURLRequest)
|
|
|
+ break
|
|
|
+ case WKNavigationType.formSubmitted:
|
|
|
+ pushCurrentSnapshotView(navigationAction.request as NSURLRequest)
|
|
|
+ break
|
|
|
+ case WKNavigationType.backForward:
|
|
|
+ break
|
|
|
+ case WKNavigationType.reload:
|
|
|
+ break
|
|
|
+ case WKNavigationType.formResubmitted:
|
|
|
+ break
|
|
|
+ case WKNavigationType.other:
|
|
|
+ pushCurrentSnapshotView(navigationAction.request as NSURLRequest)
|
|
|
+ break
|
|
|
+ @unknown default:
|
|
|
+ break
|
|
|
+ }
|
|
|
+ decisionHandler(.allow)
|
|
|
+ }
|
|
|
+
|
|
|
+ //开始加载
|
|
|
+ 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) {
|
|
|
+ progressView.isHidden = true
|
|
|
+ }
|
|
|
+
|
|
|
+ // 打开新窗口委托
|
|
|
+ func webView(_ webView: WKWebView, createWebViewWith configuration: WKWebViewConfiguration, for navigationAction: WKNavigationAction, windowFeatures: WKWindowFeatures) -> WKWebView? {
|
|
|
+ if navigationAction.targetFrame?.isMainFrame == nil {
|
|
|
+ webView.load(navigationAction.request)
|
|
|
+ }
|
|
|
+ return nil
|
|
|
+ }
|
|
|
+
|
|
|
+}
|