android webview 调用js代码、https协议网页调用、及webview内存泄露

来源:互联网 发布:非农数据对贵金属的影响 编辑:程序博客网 时间:2024/06/02 02:47

1、webview与js交互,webView.loadUrl("javascript:init()")init为html内代码。


2、调用http协议网页,需要重写WebViewClient内的onPageFinished方法和onReceivedSslError方法内写handler.proceed()忽略证书

webView.setWebViewClient(new WebViewClient() {    @Override    public boolean shouldOverrideUrlLoading(WebView view, String url) {        // TODO Auto-generated method stub               view.loadUrl(url);        return true;    }    @Override    public void onPageFinished(WebView view, String url) {            }    @Override    public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {        handler.proceed();//忽略证书    }});

3、webview进入页面重新加载,

@Overrideprotected void onPause() {    webView.reload();    super.onPause();}

4、加载网页进度条
webView.setWebChromeClient(new WorkWebChromeClient());
class WorkWebChromeClient extends WebChromeClient {    @Override    public void onProgressChanged(WebView view, int newProgress) {        super.onProgressChanged(view, newProgress);        if (newProgress == 100) {                   } else {                    }    }

5、在加载webview时,关闭页面会导致界面崩溃,主要原因是在销毁activtiy界面时,没有销毁webview,导致webview还在加载,出现内存溢出;
解决方案:
if (webView != null) {    ViewGroup parent = (ViewGroup) webView.getParent();    if (parent != null) {        parent.removeView(webView);    }    webView.removeAllViews();    webView.destroy();}

0 0