swift - 如何让 WKWebView 像 SFSafariViewController 一样全屏显示?
问题描述
我有一个包含 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
}
}
结果:
解决方案
当您呈现全屏视图控制器时。您可以将其设置为 .fullscreen
尝试 :
let customWebController = WKBrowserController()
customWebController.modalPresentationStyle = .fullScreen
present(customWebController, animated: true)
推荐阅读
- javascript - --prod 在构建 Ionic 3 应用程序时不起作用
- html - 为什么我不能正确链接导航栏?
- java - 它们是 java 根包中的任何类/类吗
- dart - Flutter 系统导航栏和状态栏颜色
- vba - 无法以有效的方式切换到新标签
- c++ - DXGI 截屏图像失真
- ruby - Ruby正则表达式提取2个标签之间的内容
- mongodb - 我们什么时候应该在 MongoDB 中使用嵌入式文档?
- javascript - 烧瓶 request.get_json() 没有收到来自 $.post() 请求的任何内容
- security - Lua redis 传输中加密连接