I am loading and opening another WKWebView in advance to reduce loading time for other webpages in Main WKWebView.
But every time you open and close another webpage, the same page grows. When I close another webpage, I want to delete the closing webpage. What should I do?
Main.js
$(document).ready(function(){
var data = {
apiType : "preload",
parameter : encodeURI(`view/other?value="testvalue"`)
}
webkit.messageHandlers.TestApp.postMessage(data);
...
$('#openBtn').on('click', function(){
var data = {
apiType : "openOther"
}
webkit.messageHandlers.TestApp.postMessage(data);
MainWKWebViewController.swift
func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
case "preload":
let parameter = message["parameter"] as! String
preload(parameter)
break
case "openOther":
openOtherScreen()
break
...
func preload(_ prameter: String){
let storyboard = UIStoryboard(name: "Main", bundle: nil)
otherWebView = storyboard.instantiateViewController(withIdentifier: "OtherWebViewController") as? OtherWebViewController
otherWebView.delegate = self
otherWebView.paramFromMain = prameter
otherWebView.loadViewIfNeeded()
otherWebView.otherWebView.navigationDelegate = self
preloadCheck = true
}
func openOtherScreen(){
if preloadCheck {
DispatchQueue.main.async {
self.navigationController?.pushViewController(self.otherWebView, animated: true)
self.preloadCheck = false
}
} else {
}
}
...
extension MainWKWebViewController: OtherWKWebViewControllerDelegate {
func HandleData(_ key: String){
if key == "reload" {
self.mainWKWebView.reload()
}
}
}
OtherWKWebViewController.swift
case "Close":
self.delegate?.HandleData("reload")
self.navigationController?.popViewController(animated: true)
break
Safari => Develop => TestIphone's WKwebViewList