[Android] WebViewのonPageStartedでJavaScriptを挿入してはならない

某アプリを作成していてハマったことを。

Androidが標準的なブラウザをアプリの中に持つために、android.webkit.WebViewというものを用意しているのですが、addJavascriptInterfaceというJavaScript側からJavaを叩けるようになる便利なものがありまして、これを使っていろいろ試していました。

publicvoid onPageStarted(WebView view, String url, Bitmap favicon) {
    view.loadUrl(jsString);
}

こんな感じでonPageStartedでJavaScriptを挿入したのですが、これがどうも上手く動かない。
いろいろ試して分かったのは、
「onPageStartedでJavaScriptを挿入した場合、 HTMLのレンダリングとJavaScriptの解釈が同時に走り、JavaScriptの値をHTMLに反映できない」
らしいのです。
結局はonPageFinishedで入れ込んだあと、JavaScript側で処理を行なって事なきを得ましたが、
これってハマる人が多そうな気がします。WebViewの挙動にはくれぐれもお気をつけて。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です