123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- //
- // FirstTabViewController.swift
- // AppBuilder
- //
- // Created by Kevin Maulana on 29/03/22.
- //
- import UIKit
- import WebKit
- class FirstTabViewController: UIViewController, WKUIDelegate, UIScrollViewDelegate, UIGestureRecognizerDelegate {
-
- @IBOutlet weak var webView: WKWebView!
- var address = ""
- private var lastContentOffset: CGFloat = 0
-
- override func viewDidLoad() {
- super.viewDidLoad()
- let cpaasMode = PrefsUtil.getCpaasMode()
- let isBurger = cpaasMode == PrefsUtil.CPAAS_MODE_BURGER
- // navigationController?.navigationBar.backgroundColor = .white
- navigationController?.setNavigationBarHidden(!isBurger, animated: false)
- let tapGesture = UITapGestureRecognizer(target: self, action: #selector(collapseDocked))
- tapGesture.cancelsTouchesInView = false
- tapGesture.delegate = self
- webView.scrollView.addGestureRecognizer(tapGesture)
- let refreshControl = UIRefreshControl()
- refreshControl.addTarget(self, action: #selector(reloadWebView(_:)), for: .valueChanged)
- webView.scrollView.addSubview(refreshControl)
- webView.scrollView.delegate = self
- }
-
- override func viewWillAppear(_ animated: Bool) {
- let me = UserDefaults.standard.string(forKey: "me")
-
- var myURL : URL?
- switch(ViewController.sURL){
- case "0":
- address = "https://qmera.io/nexilis/pages/tab1-main-only?f_pin=\(me ?? "")"
- myURL = URL(string: address)
- case "1":
- address = "https://qmera.io/nexilis/pages/tab3-main-only?f_pin=\(me ?? "")"
- myURL = URL(string: address)
- case "2":
- address = "https://qmera.io/nexilis/pages/tab1-main?f_pin=\(me ?? "")"
- myURL = URL(string: address)
- case "3":
- address = "https://qmera.io/nexilis/pages/tab3-commerce?f_pin=\(me ?? "")"
- myURL = URL(string: address)
- default:
- if(!ViewController.sURL.isEmpty){
- if(ViewController.sURL.lowercased().contains("https://")){
- address = ViewController.sURL
- myURL = URL(string: address)
- }
- else {
- address = "https://\(ViewController.sURL)"
- myURL = URL(string: address)
- }
- }
- }
- print(address)
- if let u = myURL{
- let myRequest = URLRequest(url: u)
- webView.load(myRequest)
- }
- self.navigationController?.navigationBar.topItem?.title = Bundle.main.displayName
- let cpaasMode = PrefsUtil.getCpaasMode()
- let isBurger = cpaasMode == PrefsUtil.CPAAS_MODE_BURGER
- navigationController?.setNavigationBarHidden(!isBurger, animated: false)
- }
-
- override func viewDidAppear(_ animated: Bool) {
-
- }
-
- func scrollViewDidScroll(_ scrollView: UIScrollView) {
- if (self.lastContentOffset > scrollView.contentOffset.y && scrollView.contentOffset.y < (scrollView.contentSize.height - scrollView.frame.size.height)) {
- showTabBar();
- }
- else if (self.lastContentOffset != 0 && self.lastContentOffset < scrollView.contentOffset.y && self.lastContentOffset >= 0) {
- hideTabBar();
- }
- self.lastContentOffset = scrollView.contentOffset.y
- self.collapseDocked()
- }
-
- @objc func collapseDocked() {
- if ViewController.isExpandButton {
- ViewController.expandButton()
- }
- }
- @objc func reloadWebView(_ sender: UIRefreshControl) {
- webView.reload()
- sender.endRefreshing()
- }
-
- func hideTabBar() {
- var viewController = UIApplication.shared.windows.first!.rootViewController
- if !(viewController is ViewController) {
- viewController = self.parent
- }
- if ViewController.middleButton.isDescendant(of: viewController!.view) {
- DispatchQueue.main.async {
- if let viewController = viewController as? ViewController {
- viewController.tabBar.isHidden = true
- }
- ViewController.removeMiddleButton()
- }
- }
- }
- func showTabBar() {
- if(ViewController.alwaysHideButton){
- return
- }
- var viewController = UIApplication.shared.windows.first!.rootViewController
- if !(viewController is ViewController) {
- viewController = self.parent
- }
- if !ViewController.middleButton.isDescendant(of: viewController!.view) {
- ViewController.isExpandButton = false
- if let viewController = viewController as? ViewController {
- viewController.tabBar.isHidden = false
- viewController.createMidFloatingButton()
- }
- }
- }
- func scrollViewWillBeginZooming(_ scrollView: UIScrollView, with view: UIView?) {
- scrollView.pinchGestureRecognizer?.isEnabled = false
- }
- /*
- // MARK: - Navigation
- // In a storyboard-based application, you will often want to do a little preparation before navigation
- override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
- // Get the new view controller using segue.destination.
- // Pass the selected object to the new view controller.
- }
- */
- }
|