import android.app.Activity;
import android.os.Bundle;
import android.view.ViewGroup;
import android.view.ViewParent;
import android.webkit.JavascriptInterface;
import android.webkit.WebSettings;
import android.webkit.WebView;
public class MainActivity extends Activity {
WebView mWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mWebView = (WebView)findViewById(R.id.jsBridgeWebView);
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
mWebView.addJavascriptInterface(new AndroidJavaScript(), mJsInterfaceName);
mWebView.loadDataWithBaseURL("blarg://ignored", mJsHtml, "text/html", "UTF-8", "");
}
@Override
protected void onDestroy() {
mWebView.removeJavascriptInterface(mJsInterfaceName);
ViewParent viewParent = mWebView.getParent();
if(viewParent instanceof ViewGroup) {
ViewGroup viewGroup = (ViewGroup)viewParent;
viewGroup.removeView(mWebView);
}
mWebView.destroy();
super.onDestroy();
}
private static class AndroidJavaScript {
@JavascriptInterface
public String getString() {
return new String("JavaString");
}
}
private final String mJsInterfaceName = "Android";
private final String mJsHtml = "\n" +
"\t
\n" +"\t\t
"\t\t\tvar str = window.Android.getString()\r\n" +
"\t\t\tdocument.write(str)\n" +
"\t\t\n" +
"\t\n" +
"";
}