在iOS中不使用WkWebView和Swift显示网页

问题描述 投票:4回答:2

我使用iOS 9和XCode 7.2使我的应用程序使用WkWebView和Swift显示网页。

为了消除可能的错误,我创建了一个只有以下代码的XCode项目,Main.storyboard中没有任何内容。

奇怪的是,在我过去几天运行代码之后,网页只显示“1次”。 StackOverflow上的两个成员确认该代码适用于XCode 8 / Swift 3和Xcode 7.3.1 / iOS 9.3模拟器。

我的xCode是否太旧或者其他问题可能导致它?

import UIKit
import WebKit

class WebViewController: UIViewController {
    @IBOutlet var containerView : UIView!
    var webView: WKWebView?

    override func loadView() {
        super.loadView()
        self.webView = WKWebView()
        self.view = self.webView!
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        let url = NSURL(string: "https://www.yahoo.com")!
        let req = NSURLRequest(URL: url)
        self.webView!.loadRequest(req)
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}
ios swift2 wkwebview
2个回答
0
投票

步骤:1在ViewController.swift中导入webkit

import WebKit

步骤:2声明webView的变量。

var webView : WKWebView!

步骤:3添加WKNavigationDelegate的代理

class ViewController: UIViewController , WKNavigationDelegate{

步骤:4在ViewDidLoad中添加代码。

let myBlog = "https://www.google.com/"
let url = NSURL(string: myBlog)
let request = NSURLRequest(URL: url!)

// init and load request in webview.

webView = WKWebView(frame: self.view.frame)
webView.navigationDelegate = self
webView.loadRequest(request)
self.view.addSubview(webView)
self.view.sendSubviewToBack(webView)

0
投票

所有设备的自动布局的正确方法:

import UIKit
import WebKit

class ViewController: UIViewController, WKUIDelegate {

let webView = WKWebView()

override func viewDidLoad() {
    super.viewDidLoad()
    setupWebView()
}

fileprivate func setupWebView() {
    webView.uiDelegate = self
    webView.translatesAutoresizingMaskIntoConstraints = false
    DispatchQueue.main.async {
        guard let url = URL(string: "http://www.apple.com") else { return }
        self.webView.load(URLRequest(url: url))
    }
    view.addSubview(webView)
    webView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor).isActive = true
    webView.leadingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leadingAnchor).isActive = true
    webView.trailingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.trailingAnchor).isActive = true
    webView.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor).isActive = true
}}

在info.plist中:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>
© www.soinside.com 2019 - 2024. All rights reserved.