android 调用JS
Javascript弹出框有如下三种:
alert(); //只用确定按钮
window.confirm("Are you srue?"); //带确定,取消按钮
window.prompt("Please input some word";,"this is text"); //带文本提示输入框
- //WebSettings 几乎浏览器的所有设置都在该类中进行
- WebSettings webSettings = mWebView.getSettings();
- //必须开启
- webSettings.setJavaScriptEnabled(true);
- webSettings.setSupportZoom(false);
- mWebView.addJavascriptInterface(new DemoJavaScriptInterface(),"androd");
- mWebView.loadUrl("file:///android_asset/page.html");
- final class DemoJavaScriptInterface {
- DemoJavaScriptInterface() {}
- /**
- * 该方法被浏览器端调用
- */
- public void clickOnAndroid() {
- mHandler.post(new Runnable() {
- public void run() {
- //调用js中的onJsAndroid方法
- mWebView.loadUrl("javascript:onJsAndroid()");
- }
- });
- }
- }
- final class MyWebChromeClient extends WebChromeClient {
- /**
- * 处理alert弹出框
- */
- @Override
- public boolean onJsAlert(WebView view,String url,
- String message,JsResult result) {
- Log.d(LOG_TAG,"onJsAlert:"+message");
- mReusultText.setText("Alert:"+message);
- //对alert的简单封装
- new AlertDialog.Builder(WebViewDemo.this).
- setTitle("Alert").setMessage(message).setPositiveButton("OK",
- new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface arg0, int arg1) {
- //TODO
- }
- }).create().show();
- result.confirm();
- return true;
- }