androidアプリ開発 android 4.2.2 で addJavascriptInterface が効かない

| コメント(0) | トラックバック(0)

----

webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(this, "activity");
view.loadUrl("javascript:window.activity.someMethod();") ;

というコードで activity の
public void someMethod() {
  ...
}
が呼ばれれいたのだが、android 4.2 から呼ばれなくなった。

調べたところ、4.2でセキュリティを考慮した仕様変更があったようです。

対応は、呼ばれるメソッドの宣言に
@JavascriptInterface
を記述するということのようです。

@JavascriptInterface
public void someMethod() {
  ...
}

な感じ。

JavascriptInterface cannot be resolved to a type
と言われたら

import android.webkit.JavascriptInterface;
を付けましょう。

targetSdkVersionも17以上になっているか確認しましょう。



 

トラックバック(0)

トラックバックURL: http://onno.jp/mt/cgi-bin/mt-tb.cgi/332

コメントする

このブログ記事について

このページは、管理者が2013年5月19日 07:32に書いたブログ記事です。

ひとつ前のブログ記事は「androidアプリ開発 onActivityResult が呼ばれない」です。

次のブログ記事は「Galaxy S3 アルファ いきなり Unknown USB device になって接続できない」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 5.13-ja