我使用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()
}
}
答案 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>