|
@@ -0,0 +1,138 @@
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+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()
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ 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 {
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ if requestURL.hasPrefix("tel://") {
|
|
|
+
|
|
|
+ decisionHandler(.cancel);
|
|
|
+
|
|
|
+ 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
|
|
|
+ }
|
|
|
+
|
|
|
+}
|