如何让WKWebView在swift和macOS App中工作

Ozy*_*s42 7 macos xcode nsviewcontroller swift wkwebview

在此之前,由于重复而被击落,事实并非如此.几乎WKWebView上的每个问题都是关于iOS应用程序中的WKWebView,而不是macOS应用程序,区别仅在于实现的UIViewController接口而不是macOS中的NSViewController接口.

Apple的文档中的示例代码以及可在线找到的Controller代码不起作用.尽管如此,它编译时没有问题,webview保持不活动状态.

有什么东西我没看到,或者这是WKWebView中的错误?
我甚至从教程中复制了一些代码,显示了如何为iOS做这个,只是将UIViewController更改为NSViewController(因为这是唯一的区别),但它没有用.

ViewController.swift中的以下代码不起作用.它也不起作用
class ViewController: NSViewController, WKUIDelegate

import Cocoa;
import WebKit;
class ViewController: NSViewController {
    @IBOutlet weak var webView: WKWebView!
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        let url=URL(string: "http://safetec-cam.biz/images/webcam_extern/bad-nauheim_bahnhof_west.jpg");
        webView.load(URLRequest(url: url!));
    }
}
Run Code Online (Sandbox Code Playgroud)

如果用UIViewController 从https://developer.apple.com/documentation/webkit/wkwebview交换NSViewController 图像,这样做也行不通

Jeb*_*ses 5

我建议您从头开始:

设置要加载的URL:

let myURLString = "https:yourWebLink"
let url = NSURL(string: myURLString)
let request = NSURLRequest(URL: url!)  
Run Code Online (Sandbox Code Playgroud)

在webview中初始化和加载请求:

 let webView = WKWebView(frame: self.view.frame)
 webView.navigationDelegate = self
 webView.loadRequest(request)
Run Code Online (Sandbox Code Playgroud)

实现WKNavigationDelegate来跟踪页面加载/错误:

extension ViewController: WKNavigationDelegate {

    func webView(webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {
        print("Strat to load")
    }

    func webView(webView: WKWebView, didFinishNavigation navigation: WKNavigation!) {
        print("finish to load")
    }

    func webView(webView: WKWebView, didFailProvisionalNavigation navigation: WKNavigation!, withError error: NSError) {
            print(error.localizedDescription)
        }
  }
Run Code Online (Sandbox Code Playgroud)

有关更多参考,请检查:https : //iosdevcenters.blogspot.com/2016/05/creating-simple-browser-with-wkwebview.html