【问题标题】:iOS webView is not using whole screeniOS webView 没有使用整个屏幕
【发布时间】: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 对吗?
  • 我不明白。我只是在加载一个网站。
  • 你在用故事板吗?

标签: ios uiwebview tablet smartphone


【解决方案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
 }
}

试试这个...(注意:不是复制粘贴的代码)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-05
    相关资源
    最近更新 更多