2016-05-04 8 views
0

私はシンプルなウェブを表示するためにUIWebViewを使用します。このWebはJava Script関数を呼び出すので、いつ発射したのかを知る必要があります。 私の質問:UIWebViewを使用してスウィフトコードでjavaSctiptを取得する方法は?迅速なUIWebViewでjavascript関数を取得する方法は?

+0

のjavascriptのはconsole.log()にバインドされている関数を定義することができますプロトコル。 'UIWebView'と' WKWebView'の違いについては、http://nshipster.com/wkwebkit/をご覧ください。 – beyowulf

答えて

0

上記のbeyowulfは、WKWebViewでこれを行うことができます。あなたがのUIWebViewを使用する必要がある場合は、ここで1つのオプションだ...これは、あなたが `WKWebView`を使用し、` WKScriptMessageHandler`を実装し、これを行うことができ

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") 
} 
関連する問題