public class JSAndroidActivity extends Activity { private Activity mActivity = null; private WebView mWebView = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mActivity = this; showWebView(); } @SuppressLint("SetJavaScriptEnabled") private void showWebView(){ // webView与js交互代码 try { mWebView = new WebView(this); setContentView(mWebView); mWebView.requestFocus(); mWebView.setWebChromeClient(new WebChromeClient(){ @Override public void onProgressChanged(WebView view, int progress){ JSAndroidActivity.this.setTitle("Loading..."); JSAndroidActivity.this.setProgress(progress); if(progress >= 80) { JSAndroidActivity.this.setTitle("JsAndroid Test"); } } }); mWebView.setOnKeyListener(new View.OnKeyListener() { // webview can go back @Override public boolean onKey(View v, int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK && mWebView.canGoBack()) { mWebView.goBack(); return true; } return false; } }); WebSettings webSettings = mWebView.getSettings(); webSettings.setJavaScriptEnabled(true); webSettings.setDefaultTextEncodingName("utf-8"); mWebView.addJavascriptInterface(getHtmlObject(), "jsObj"); mWebView.loadUrl("http://172.17.140.233:8080/jsandroid/index.html"); } catch (Exception e) { e.printStackTrace(); } } private Object getHtmlObject(){ Object insertObj = new Object(){ public String HtmlcallJava(){ return "Html call Java"; } public String HtmlcallJava2(final String param){ return "Html call Java : " + param; } public void JavacallHtml(){ runOnUiThread(new Runnable() { @Override public void run() { mWebView.loadUrl("javascript: showFromHtml()"); Toast.makeText(JSAndroidActivity.this, "clickBtn", Toast.LENGTH_SHORT).show(); } }); } public void JavacallHtml2(){ runOnUiThread(new Runnable() { @Override public void run() { mWebView.loadUrl("javascript: showFromHtml2('IT-homer blog')"); Toast.makeText(JSAndroidActivity.this, "clickBtn2", Toast.LENGTH_SHORT).show(); } }); } }; return insertObj; } }
Android与js交互
最新推荐文章于 2024-07-24 11:23:56 发布