'Galaxy S4'のWebViewでのcanvasの表示不具合の対応
'Galaxy S4'のWebViewでのcanvasの表示不具合が結構有名ぽくて、自分もハマった。。。
以下のサイトなどに書かれています。
http://blog.happyelements.co.jp/2013_08_01_archive.html
Galaxy S4のWebviewで、非同期処理の中でのCanvasの描画がバグってる - 車輪を再発明 / koba04の日記
今回たまたまどこの記事にもなかった(はず)方法で解決できたのでメモ。
現象
WebViewでcanvasを表示するところが、他端末では正しく表示されているのに、'Galaxy S4'では何も表示されないという現象
解決方法
jQuery('#myCanvas').hide(); //処理 jQuery('#myCanvas').show();
流れとしては、まず一旦キャンバスを'hide()'してあげる。これをしないと自分の環境では正しく表示されませんでした。
次に'show()'をしてあげるのですが、これを実行するべきタイミングがはっきりとしていなくて、すべてのデータを設定し終えたあとにすべきはずだと思ったのですが、hide()の直後に書いても正しく表示さることもありました。でも基本的にはすべての描画処理を終えたあとだと思います。
と・・・理屈ではよくわからないことなのでなんかタメになった気がしないなぁ。
この方法が絶対的な解決方法ではないと思いますが、同じく困っている方いましたら試してみてください。