2016-05-04 9 views
0

Ich benutze UIWebView, um einfaches Web zu zeigen. Dieses web fire javaScript funktioniert und ich muss wissen, wann sie geschossen haben. Meine Frage: Wie kann ich javaSctipt im schnellen Code mit UIWebView holen?Wie JavaScript-Funktion in Swift UIWebView holen?

+0

Sie dies tun, können eine 'WKWebView' mit und Umsetzung des' WKScriptMessageHandler' Protokoll. Sie können über die Unterschiede zwischen 'UIWebView' und' WKWebView' hier nachlesen: http://shipster.com/wkwebkit/ – beyowulf

Antwort

0

Wie beyowulf erwähnt, können Sie dies mit WKWebView tun. Wenn Sie UIWebView verwenden müssen, ist hier eine Option ... Auf diese Weise können Sie eine Funktion definieren, die von JavaScript console.log gebunden ist()

func webViewDidFinishLoad(webView: UIWebView) { 
    let logFunction: @convention(block) (String) -> Void = { (msg: String) in 
     print("JS Console: \(msg)") 
    } 

    let context = webView.valueForKeyPath("documentView.webView.mainFrame.javaScriptContext") as! JSContext 
    context.objectForKeyedSubscript("console").setObject(unsafeBitCast(logFunction, AnyObject.self), forKeyedSubscript: "log") 
} 
Verwandte Themen