某アプリを作成していてハマったことを。
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の挙動にはくれぐれもお気をつけて。