如何从javascript web视图调用swift函数

如何从javascript web视图调用swift函数,javascript,swift,macos,webview,Javascript,Swift,Macos,Webview,我正在从我的swift应用程序启动web视图。在web视图中,我想通过单击按钮调用swift函数。我找到了代码示例 当我按下按钮时,什么也没发生。我在web视图中加载的URL是 代码如下: import Cocoa import WebKit class ViewController : NSViewController { override func viewDidLoad() { super.viewDidLoad() // Do any add

我正在从我的swift应用程序启动web视图。在web视图中,我想通过单击按钮调用swift函数。我找到了代码示例

当我按下按钮时,什么也没发生。我在web视图中加载的URL是

代码如下:

import Cocoa
import WebKit

class ViewController : NSViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
    }

    override var representedObject: Any? {
        didSet {
        // Update the view, if already loaded.
        }
    }

    var webView:WebView!

    @IBAction func mybutton(_ sender: Any) {
        let url = URL(string: "https://test-swift-js.github.io")
        let request = URLRequest(url: url!)
        webView =  WebView(frame: NSRect(x: 0, y: 0, width: 1000, height: 1000))
        webView.mainFrame.load(request)
        self.view.addSubview(webView)
    }

    func webView(webView: WebView!, didClearWindowObject windowObject: WebScriptObject!, forFrame frame: WebFrame!) {
        windowObject.setValue(self, forKey: "interOp")
    }

    //The name used to represent the Swift function name in Javascript.
    class func webScriptNameForSelector(aSelector: Selector) -> String!
    {
        if aSelector == "callSwift:"
        {
            return "callSwift"
        }
        else
        {
            return nil
        }
    }
    class func isSelectorExcludedFromWebScript(aSelector: Selector) -> Bool
    {
        return false
    }
    func callSwift(message:String)
    {
        var alert = NSAlert()
        alert.messageText = message
        alert.alertStyle = NSAlertStyle.informational
        alert.beginSheetModal(for: self.view.window!, completionHandler: nil)
    }
}

也许你忘了设置代理。

可能重复编号。您提供的链接是针对iOS的。我想要Mac OS X的代码。