我正在预先加载和打开另一个WKWebView,以减少WKWebView主页面中其他网页的加载时间。
但是,每次打开和关闭另一个网页时,都会有更多相同的页面。当我关闭另一个网页时,我想删除关闭的网页。我该怎么办?
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=>Development=>TestIphone的
WKwebViewList
https://i.stack.imgur.com/oKO99.png
我怎样才能解决这个问题?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。