iOS webView 没有使用整个屏幕
Posted
技术标签:
【中文标题】iOS webView 没有使用整个屏幕【英文标题】:iOS webView is not using whole screen 【发布时间】:2019-07-18 06:53:12 【问题描述】:我尝试在 webView 应用程序中显示一个完整的响应式引导网站。该应用程序应该只加载我的网站,就像我在智能手机/平板电脑的浏览器中加载网站一样。
但是,该应用在平板电脑上看起来像这样:
如何让应用完全响应?
完整代码:
ViewController.swift
import UIKit
import WebKit
class ViewController: UIViewController, WKNavigationDelegate
@IBOutlet var webView: WKWebView!
override func viewDidLoad()
super.viewDidLoad()
// 1 The webView loads the url using an URLRequest object.
let url = URL(string: "https://www.blizz-z.de/")!
webView.load(URLRequest(url: url))
// 2 A refresh item is added to the toolbar which will refresh the current webpage.
let refresh = UIBarButtonItem(
barButtonSystemItem: .refresh,
target: webView,
action: #selector(webView.reload)
)
toolbarItems = [refresh]
navigationController?.isToolbarHidden = true
navigationController?.isNavigationBarHidden = true
override func loadView()
webView = WKWebView()
webView.navigationDelegate = self
view = webView
let color = UIColor.black;
self.view.backgroundColor = color
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!)
title = webView.title
【问题讨论】:
我相信这里呈现的视图是 iPhone 应用程序的视图。你确定应用程序支持 iPAD(这是 iPAD 还是通用应用程序) 我需要该应用程序成为 iPad 和 iPhone 的通用应用程序 好的,那么您使用的是 size classes 对吗? 我不明白。我只是在加载一个网站。 你在用故事板吗? 【参考方案1】:您的代码没有问题。 切换到 Xcode 中的目标设置,在“部署目标”部分的“常规”选项卡上,将“设备”切换为“通用”。 如果您没有添加它,还要添加“Launch Screen.storyboard”。
【讨论】:
谢谢!就是这样。【参考方案2】:应该为webView添加约束,superView的top/bottom/left/right约束常量为0,非安全区
【讨论】:
我很困惑,我在哪里可以找到这个菜单?请提供更多详细信息。 看截图的右下角,你可以看到一个带箭头的按钮。这意味着应用程序以兼容模式启动。 iPad 将应用程序呈现在与 iPhone 屏幕大小相同的区域中(UIScreen.mainScreen.bounds 与 iPhone 上的相同)。【参考方案3】:import UIKit
import WebKit
class ViewController: UIViewController, WKNavigationDelegate
@IBOutlet var webView: WKWebView!
override func viewDidLoad()
super.viewDidLoad()
self.setupWebview()
let refresh = UIBarButtonItem(
barButtonSystemItem: .refresh,
target: webView,
action: #selector(webView.reload)
)
toolbarItems = [refresh]
navigationController?.isToolbarHidden = true
navigationController?.isNavigationBarHidden = true
func setupWebview()
self.webView.frame = UIScreen.main.bounds
self.webView.navigationDelegate = self
self.view.backgroundColor = UIColor.black
let url = URL(string: "https://www.blizz-z.de/")!
self.webView.load(URLRequest(url: url))
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!)
title = webView.title
试试这个...(注意:不是复制粘贴的代码)
【讨论】:
以上是关于iOS webView 没有使用整个屏幕的主要内容,如果未能解决你的问题,请参考以下文章
如何在 react-native-webview 中启用安全上下文?
javascript 提供用于从React-Native WebView发送和接收消息的示例实现(使用postMessage / onMessage WebVie)