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

时间:2016-10-08 04:31:00

标签: ios swift2 wkwebview

我使用iOS9和XCode7.2让我的应用程序使用WkWebView和Swift显示网页。

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

奇怪的是网页只出现了#1; 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()
    }
}

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分: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
}}

在信息列表中:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>