【发布时间】:2020-05-13 01:30:56
【问题描述】:
我有一个包含 Web url 列表的 TableView。我想打开一个浏览器,导航到所选的 url,但具有一些自定义功能。当我使用SFSafariViewController 时,我得到了全屏浏览器。但是,当我使用 WKWebViewController 时,我会看到您向下滑动以关闭的模式。
如何让WKWebView 全屏显示,而不是像模态一样?
使用SFSafariViewController:
class ShoppingViewController: UITableViewController {
...
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
showRetailerHome(indexPath: indexPath)
}
func showHome(indexPath: IndexPath){
...
if let url = URL(string: urlString){
let config = SFSafariViewController.Configuration()
let vc = SFSafariViewController(url: url, configuration: config)
present(vc, animated: true)
}
}
结果:
使用WKWebViewController:
class ShoppingViewController: UITableViewController {
...
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
showRetailerHome(indexPath: indexPath)
}
func showHome(indexPath: IndexPath){
let customWebController = WKBrowserController()
present(customWebController, animated: true)
}
WKBrowserController:
class WKBrowserController: UIViewController, WKNavigationDelegate {
var webView: WKWebView!
override func loadView() {
webView = WKWebView()
webView.navigationDelegate = self
self.view = webView
}
override func viewDidLoad() {
super.viewDidLoad()
let url = URL(string: "https://www.amazon.com")!
webView.load(URLRequest(url: url))
webView.allowsBackForwardNavigationGestures = true
}
}
结果:
【问题讨论】:
标签: swift uikit wkwebview sfsafariviewcontroller