在UIWebView中关闭页面并返回应用程序,可以通过以下方法实现:
在UIViewController中,可以通过重写navigationBar的返回按钮点击事件来实现返回到应用程序的功能。
override func navigationBar(_ navigationBar: UINavigationBar, didPushItem button: UIBarButtonItem) {
if navigationBar.topItem === button.item {
// 返回到应用程序
}
}
在返回到应用程序的功能中,可以通过以下代码关闭UIWebView:
webView.stopLoading()
webView.delegate = nil
webView.removeFromSuperview()
webView = nil
在关闭UIWebView后,可以通过以下代码返回到应用程序:
navigationController?.popViewController(animated: true)
完整的代码示例如下:
import UIKit
import WebKit
class ViewController: UIViewController, WKNavigationDelegate {
var webView: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
let webConfiguration = WKWebViewConfiguration()
webView = WKWebView(frame: .zero, configuration: webConfiguration)
webView.navigationDelegate = self
view.addSubview(webView)
let myURL = URL(string:"https://www.example.com")
let myRequest = URLRequest(url: myURL!)
webView.load(myRequest)
}
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
webView.frame = view.bounds
}
override func navigationBar(_ navigationBar: UINavigationBar, didPushItem button: UIBarButtonItem) {
if navigationBar.topItem === button.item {
// 返回到应用程序
webView.stopLoading()
webView.navigationDelegate = nil
webView.removeFromSuperview()
webView = nil
navigationController?.popViewController(animated: true)
}
}
}
这样,在点击返回按钮时,UIWebView将被关闭并返回到应用程序。
领取专属 10元无门槛券
手把手带您无忧上云