Android4.4の開発でハマった問題まとめ
仕事でスマートフォンアプリの開発をしているのだが、先日リリースされた Android 4.4 にてハマった事などがあるのでココにまとめていこうと思う。 とりあえず数日前にハマった事象をば。 また何か見つけたら追記していく。
WebViewの実装がchromiumに
Android 4.4 から、WebView の実装が chromium になった。 (今までは WebKit ベースだった。) よってブラウザの解釈の違いによる不都合に直面した。
私が直面したのは「新しい chromium だから」というわけではなくて昔から良く話題にはなっていた「ブラウザのEvent問題」である。 スマフォ用開発向けの記事ではないがCodeZineさんの「ブラウザごとのeventオブジェクトの違いを理解する」などの記事が、この「Event問題」の概要を把握するのには分かりやすいだろう。 まぁ要は、Eventクラスはブラウザによって実装が違っているという問題だ。
なぜこの問題に直面したかというと、私が関わっているアプリが「WebViewはWebKitベースだから」という事を前提に実装されていたからだ。 なので Android 4.4 の端末で動作確認してみたところ「動かないぞ!」ということになったのである。 JavaScriptで動作するアプリケーションを開発・運用されている方は、今一度 Event クラスを利用した実装について見直しをした方が良いかもしれない。
今回は Event クラスのフィールド layerX, layerX を利用していた部分を offsetX, offsetY も場合に応じて利用するように修正することで対応した。
Android 4.4 で問題に遭遇した場合は、随時ここにまとめていこうと思う。