AndroidのWebviewのevaluateJavascriptメソッドでjavascriptを実行する

あんまりいいサンプルが見当たらないので紹介。
Kitkatからは戻り値を取得することも可能。







サンプルコード



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
WebView webView;
webView = (WebView) findViewById(R.id.webview);
 
// アラート表示用
webView.setWebChromeClient(new WebChromeClient());
 
String script = "alert('test'); return 'called script!!'";
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
    webView.evaluateJavascript(script, new ValueCallback<string>() {
        @Override
        public void onReceiveValue(String retValue) {
            Log.d("script result", retValue);
        }
    });
}
else {
    webView.loadUrl("javascript:" + script);
}
 
</string>

バージョンによって処理を切り替えている。
Kitkatより前(4.4未満)はjavascriptの戻り値を取得するのに一手間必要だが個人的に対応する予定がないので割愛。

2016年12月19日月曜日