您的位置:首页 > 移动开发

webview alert confirm 重写

2016-03-02 11:23 232 查看
直接上代码:

[code]public class MainActivity extends Activity {
    WebView webVContent;
    WebSettings webSettings;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.maintest);
        webVContent = (WebView) findViewById(R.id.myweb);
        webVContent.setWebChromeClient(new WebChromeClient() {

            @Override
            public boolean onJsConfirm(WebView view, String url, String message, JsResult result) {
                AlertDialog.Builder confirm = new AlertDialog.Builder(MainActivity.this, AlertDialog.THEME_DEVICE_DEFAULT_LIGHT);

                confirm.setTitle("提示");
                confirm.setMessage(message);

                final JsResult a = result;
                confirm.setNegativeButton("取消", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        a.cancel();
                    }
                });
                confirm.setPositiveButton("确定", new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        a.confirm();
                    }
                });

                confirm.setOnCancelListener(new DialogInterface.OnCancelListener() {

                    @Override
                    public void onCancel(DialogInterface dialog) {
                        a.cancel();
                    }
                });
                AlertDialog create = confirm.create();
                create.setCanceledOnTouchOutside(true);
                create.show();
                return true;
            }

            @Override
            public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
                AlertDialog.Builder alert = new AlertDialog.Builder(MainActivity.this, AlertDialog.THEME_DEVICE_DEFAULT_LIGHT);

                alert.setTitle("提示");
                alert.setMessage(message);
                final JsResult a = result;
                alert.setPositiveButton("确定", new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        a.confirm();
                    }
                });

                alert.setOnCancelListener(new DialogInterface.OnCancelListener() {
                    @Override
                    public void onCancel(DialogInterface dialog) {
                        a.cancel();
                    }
                });
                AlertDialog create = alert.create();
                create.setCanceledOnTouchOutside(true);
                create.show();
                return true;
            }

        });
        webVContent.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }
        });
        webSettings = webVContent.getSettings();
        webSettings.setJavaScriptEnabled(true);
        webVContent.loadUrl("file:///android_asset/index.html");

    }

    @Override
    public void onBackPressed() {
        if (webVContent.canGoBack()) {
            webVContent.goBack();
        } else {
            super.onBackPressed();
        }
    }
    @Override
    protected void onDestroy() {
        if(webSettings!=null)
            webSettings.setJavaScriptEnabled(false);
        super.onDestroy();
    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: