package mil.nga.dice.report;
import android.content.Context;
import android.os.Build;
import android.util.Log;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import java.io.IOException;
import java.io.InputStream;
import java.util.Scanner;
import mil.nga.dice.R;
/**
* WebView Javascript Bridge Client
*/
public class WebViewJavascriptBridgeClient extends WebViewClient {
/**
* Application context
*/
protected final Context context;
public WebViewJavascriptBridgeClient(Context context) {
this.context = context;
}
@Override
public void onPageFinished(WebView webView, String url) {
Log.d("JSBridge", "onPageFinished");
loadWebViewJavascriptBridgeJs(webView);
}
private void loadWebViewJavascriptBridgeJs(WebView webView) {
InputStream is = context.getResources().openRawResource(R.raw.webviewjavascriptbridge);
String script = convertStreamToString(is);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
webView.evaluateJavascript(script, null);
}
else {
webView.loadUrl("javascript:" + script);
}
}
public static String convertStreamToString(java.io.InputStream is) {
String s = "";
try {
Scanner scanner = new Scanner(is, "UTF-8").useDelimiter("\\A");
if (scanner.hasNext()) s = scanner.next();
is.close();
} catch (IOException e) {
e.printStackTrace();
}
return s;
}
}