愛と勇気と缶ビール

ふしぎとぼくらはなにをしたらよいか

最近のiOS, AndroidのNative AppにおけるJavaScript連携に関して

iOS

iOSについては、何となくWWDCのスライドを眺めていたら、「iOSとMac向けの新機能として、JavaScriptCore.frameworkっていうのを作ってObjective-CレイヤからJavaScriptを実行したり、その逆をやったりできる機能を提供するよ」という内容のがあった。

WWDC 2013 Session Videos - Apple Developer

↑の、"Integrating JavaScript into Native Apps" というプレゼンテーション。これが提供されることにより、今まではUIWebView経由で(頑張って)行うことの出来たNative/JavaScript連携がスムーズに行えるようになる、ようだ。詳しくはスライド参照。

JavaScriptCore.frameworkの、あまりやる気の見られないリファレンスはこちら。

https://developer.apple.com/library/mac/#documentation/Carbon/Reference/WebKit_JavaScriptCore_Ref/_index.html

Android

だいぶ前に、WebViewのaddJavaScriptInterfaceの危険性について記事を書いた。

AndroidのWebView#addJavascriptInterfaceは基本使わない方がいい、っていう話 - 愛と勇気と缶ビール

Android4.2以降では、この辺にどうやら変更が入っているようなのだが…

Nexus 7(Android 4.2.2)で、JavascriptInterfaceが動かない | UB Lab.

publicかつ@JavascriptInterfaceというアノテーションがついたメソッドしかexportされなくなったらしい。
以前のように、リフレクションを使ってこれを突破できるかどうかは未検証。