いろいろアプリを作っていたら、
Android 4.2系でJavaScriptからネイティブコードが呼べない事があったので、
解決方法のメモ。
JavaScriptのInterfaceを登録するには、
webview.addJavascriptInterface(new JSObject(this), "jsobject");
と登録していました。
そこは今までと変わらず、
4.2以降では、
このJSObjectのJavaScriptから呼び出すメソッドに、
@JavascriptInterface
のアノーテーションを付ける必要があるようです。
ので、
class JSObject { public JSObject(Context context) { } @JavascriptInterface // ここを追加 public void callFromJS(String message) { } }
ちなみに、ビルドターゲットも17以上にしないとビルド出来ないので、
古いターゲットのままでJavaScript Interfaceを使うのであれば、
上限を16とかにしておいた方が良いかもしれません。
0 件のコメント:
コメントを投稿