Friday, April 19, 2024
HomeiOS Developmentios - App not updating adjustments from webpage with out uninstall/reinstall

ios – App not updating adjustments from webpage with out uninstall/reinstall


I’m attempting to code an app and have the principle display screen load a webpage to make updating the app simpler.

Nevertheless, each time I take a look at new adjustments within the app with the loaded webpage, the adjustments do not seem until I uninstall and reinstall the app. Can anybody kindly assist me?

That is the construction for viewing the webpage (HomeView), I exploit a tabview for it although from ContentView.

import SwiftUI
import WebKit
import SwiftData

struct HomeView: View {
    var physique: some View {
        ScrollView {
            ZStack {
                Webview(url: URL(string: "https://www.******.com/appmain")!)
                    .body(top: 1400)
            }
        }
    }
}
    
struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        HomeView()
    }
}

And that is the struct for the Webview:

struct Webview: UIViewControllerRepresentable {
    let url: URL
    func makeUIViewController(context: Context) -> WebviewController {
        let webviewController = WebviewController()
        let request = URLRequest(url: self.url, cachePolicy: .returnCacheDataElseLoad)
        webviewController.webview.load(request)
        return webviewController
    }
    func updateUIViewController(_ webviewController: WebviewController, context: Context) {
        //
    }
}

class WebviewController: UIViewController, WKNavigationDelegate {
    lazy var webview: WKWebView = WKWebView()
    lazy var progressbar: UIProgressView = UIProgressView()
    deinit {
        self.webview.removeObserver(self, forKeyPath: "estimatedProgress")
        self.webview.scrollView.removeObserver(self, forKeyPath: "contentOffset")
    }
    override func viewDidLoad() {
        tremendous.viewDidLoad()
        self.webview.navigationDelegate = self
        self.view.addSubview(self.webview)
        self.webview.body = self.view.body
        self.webview.translatesAutoresizingMaskIntoConstraints = false
        self.view.addConstraints([
            self.webview.topAnchor.constraint(equalTo: self.view.topAnchor),
            self.webview.bottomAnchor.constraint(equalTo: self.view.bottomAnchor),
            self.webview.leadingAnchor.constraint(equalTo: self.view.leadingAnchor),
            self.webview.trailingAnchor.constraint(equalTo: self.view.trailingAnchor),
        ])
        self.webview.addSubview(self.progressbar)
        self.setProgressBarPosition()
        webview.scrollView.addObserver(self, forKeyPath: "contentOffset", choices: .new, context: nil)
        self.progressbar.progress = 0.1
        webview.addObserver(self, forKeyPath: "estimatedProgress", choices: .new, context: nil)
    }
    func setProgressBarPosition() {
        self.progressbar.translatesAutoresizingMaskIntoConstraints = false
        self.webview.removeConstraints(self.webview.constraints)
        self.webview.addConstraints([
            self.progressbar.topAnchor.constraint(equalTo: self.webview.topAnchor, constant: self.webview.scrollView.contentOffset.y * -1),
            self.progressbar.leadingAnchor.constraint(equalTo: self.webview.leadingAnchor),
            self.progressbar.trailingAnchor.constraint(equalTo: self.webview.trailingAnchor),
        ])
    }
    // MARK: - Net view progress
    override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
        change keyPath {
        case "estimatedProgress":
            if self.webview.estimatedProgress >= 1.0 {
                UIView.animate(withDuration: 0.3, animations: { () in
                    self.progressbar.alpha = 0.0
                }, completion: { completed in
                    self.progressbar.setProgress(0.0, animated: false)
                })
            } else {
                self.progressbar.isHidden = false
                self.progressbar.alpha = 1.0
                progressbar.setProgress(Float(self.webview.estimatedProgress), animated: true)
            }
        case "contentOffset":
            self.setProgressBarPosition()
        default:
            tremendous.observeValue(forKeyPath: keyPath, of: object, change: change, context: context)
        }
    }
}

No adjustments are seen within the app from the webpage even after I shut it, shut down the telephone and take a look at once more. The one factor that helps is to reinstall the app.



Supply hyperlink

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

- Advertisment -
Google search engine

Most Popular

Recent Comments