【Swift】WKWebViewのJavaScript呼び出しは非同期

iOSアプリからJavaScriptを呼び出して返り値を受け取りたい場合、以下のように書けば返り値を受け取ることができます。非同期なので実行結果が返ってくる前に、次の行がどんどん実行されていきます

HTML+JavaScript

function sum(a, b) {
	return a + b;
}

iOS

var jscript = "sum(1,2);"
webView.evaluateJavaScript(jscript, completionHandler: { (object, error) -> Void in
            var ret = object as! NSNumber  
            println( "答え: \(ret)" )
            
        })

ちなみにUIWebViewだとこんな感じ。非同期ではありません。

var jscript = "sum(1,2);"
var ret = WebView.stringByEvaluatingJavaScriptFromString(jscript) as String!
println( "答え: \(ret)" )

というわけで、UIWebViewからWKWebViewに切り替えたい場合、JavaScriptからの返り値を受け取る処理を入れているとプログラムの流れが変わるので、ちょっと工夫が必要になります

関連コンテンツ
ブログランキング
  • にほんブログ村 教育ブログ プログラミング教育へ
  • にほんブログ村 子育てブログ 子供の習い事(教室・業者)へ

  • スポンサーリンク
    Google336 記事下
    Google336 記事下

    シェアする

    • このエントリーをはてなブックマークに追加

    フォローする

    スポンサーリンク
    Google336 記事下
    トップへ戻る