ios - 选择选项卡时如何刷新或重新加载 WKwebview

标签 ios swift wkwebview tabbed

我有一个选项卡式应用程序,它加载单独的内部文件 WKwebviews。我现在需要在选择选项卡时刷新 WKwebview。

我想我需要在 viewWillAppear 中添加所需的代码,但是在尝试在此方法上添加一些代码时没有任何效果。

有没有人对我如何实现这一目标有任何建议

override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        webView.configuration.userContentController.add(self, name: "jsHandler")
        let bundleURL = Bundle.main.resourceURL!.absoluteURL
        let html = bundleURL.appendingPathComponent("main/index.html") //Loads internal HTML files
        webView.loadFileURL(html, allowingReadAccessTo:bundleURL)
        webView!.uiDelegate = self
        webView.allowsBackForwardNavigationGestures = true //Allows 'safari' style gestures swipe back etc
    }

    override func viewWillAppear(_ animated: Bool) {
        //Nothing
    }

更新: 为了解决这个问题,我将上面的代码添加到 viewDidAppear 方法而不是 viewDidLoad 中。这已经解决了问题。 JS 消息处理程序仍然需要在 viewDidLoad 中。

例子:

override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        webView.configuration.userContentController.add(self, name: "jsHandler")
    }

    override func viewDidAppear(_ animated: Bool) {
        //webView.configuration.userContentController.add(self, name: "jsHandler")
        let bundleURL = Bundle.main.resourceURL!.absoluteURL
        let html = bundleURL.appendingPathComponent("index.html") //Loads internal HTML files
        webView.loadFileURL(html, allowingReadAccessTo:bundleURL)
        webView!.uiDelegate = self
        webView.allowsBackForwardNavigationGestures = true //Allows 'safari' style gestures swipe back etc
    }

最佳答案

在每个标签操作上尝试这样的事情:

func reloadTabAction() {
    if let url = webView.url {
        webView.reload()
    } else {
        webView.load(URLRequest(url: originalURL))
    }
}

关于ios - 选择选项卡时如何刷新或重新加载 WKwebview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57219043/

相关文章:

ios - Xcode 11 存档给出 PhaseScriptExecution 失败

ios - 将 NSString 变量发送到 WCF 服务

iphone - 如何在不同的导航 View 中分配和初始化 NSObject?

ios - UITableView 错误?可重复使用的细胞不正确

ios - Google Advance 原生广告显示问题

swift - c-style for 语句被扭曲弃用

swift - WKWebview 未显示远程 URL 中的正确字体

iOS 8 didReceiveAuthenticationChallenge 没有被 WKWebView Objective C 调用

javascript - window.innerHeight 在 iOS 11 中返回错误值

ios - "CFBundleIdentifier Collision. There is more than one bundle with the CFBundleIdentifier value ' org.cocoapods.FMDB'