Android基礎知識Androidアプリケーションで埋め込みブラウザのようなものを実現するためのViewコンポーネントであるandroid.webkit.WebViewには次のようなシグネチャでaddJavascriptIntefaceというメソッドが生えています。http://developer.android.com/reference/android/webkit/WebView.html#addJavascriptInterface(java.lang.Object,%20java.lang.String)これは、簡単に言うとJavaのオブジェクトをWebView内でロードされたJavaScriptから叩けるようになる、というものです。"android");このような呼び出しをJava側で行った場合、WebView内のwindowでロードされたJS側からはwindow.androidというオブジェクトが見えるようになります。いう方向の通信が行えるようになりました。それじゃ、Java側からJavaScriptに処理(そして値)を戻したい場合はどうするの?ということですが以下のblog記事にWebView#loadUrlを使ったやり方が書いてあります。Java間の型変換addJavascriptInterfaceの利用例を示したblog記事などでは、文字列を渡している場合がほとんどです。いうか僕は文字列以外のものを渡している例を見たことがないです。JavaScriptの値のうちどういうものがaddJavascriptInterface経由で受け渡せるかを調べました。JavaScriptにおける「型」については、typeof演算子で取れる値をベースにします。大体以下のような型変換が行われます。JavaのStringで受けることが可能。JavaのStringで受けることが可能。Javaのintで受けることが可能。Javaのdoubleで受けることが可能。Javaのbooleanで受けることが可能。stringを混ぜた場合、その値は0になる。numberを混ぜた場合、その値はnullになる。不完全なリストではありますが、空気感は分かると思います。ような値をJava側で受ける方法はわかりませんでした。objectとしての挙動addJavascriptInterfaceを通じて公開されたobjectは、以下のような特徴を持ちます。ここでは、"android"という名前でglobalに公開されている(window.androidとしてアクセスできる)ものとします。