webView加载html

Android中webView加载html
1.本地放到项目中的html资源文件目录
这里写图片描述
activity内的代码如下:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView=(WebView)findViewById(R.id.webView1);

    webView.loadUrl("file:///android_asset/www/Omni_Coverage/html/index.html");
    //加载http url
    /*
    *if(isNetworkConnected(mActivity)){
        webView.loadUrl("https://219.133.37.94:20035/pus/view/yilife/index.html");  

    }else{
        Utils.showToast("网络连接异常", mActivity);

    }
    *
    */
             initWebView();
            setwebSettings();
}
private void initWebView() {//设置WebViewClient回调, 监听webView

    webView.setWebViewClient(new WebViewClient() {
        @Override    //拦截 url 跳转,在里边添加点击链接跳转或者操作
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            if (url != null) {

                // view.loadUrl(url);



                Intent intent = new Intent(mActivity, WebViewShowActivity.class);
                intent.putExtra("StringUrl", url);
                startActivity(intent);

                return true;

            }

            return super.shouldOverrideUrlLoading(view, url);

        }

        //当接收到https错误时,会回调此函数,在其中可以做错误处理
        @Override
        public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
            super.onReceivedSslError(view, handler, error);


        }
        //在开始加载网页时会回调
        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {

            super.onPageStarted(view, url, favicon);


        }
        //在结束加载网页时会回调
        @Override
        public void onPageFinished(WebView view, String url) {

            super.onPageFinished(view, url);


        }
        // 加载错误的时候会回调,在其中可做错误处理,比如再请求加载一次,或者提示404的错误页面
        @Override
        public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
            super.onReceivedError(view, errorCode, description, failingUrl);


            Intent intent=new Intent();
            intent.setAction("com.ybs.server.error");
            mActivity.sendBroadcast(intent);


        }
    });

    webView.setWebChromeClient(new WebChromeClient() {
        @Override
        public void onProgressChanged(WebView view, int newProgress) {

            bar.setProgress(newProgress);

        }
        //在此方法中获取html中的title
        @Override
        public void onReceivedTitle(WebView view, String title) {
            super.onReceivedTitle(view, title);
            // Log.i("tag", "title=="+title);
            tvtitle.setText(title);
            if ("xxx".equals(title)) {
                back.setVisibility(View.GONE);
            } else if("yyy".equals(title)){
                tvtitle.setText("nnn");
                back.setVisibility(View.GONE);
            }else if("zzz".equals(title)){
                back.setVisibility(View.GONE);
            }else {
                back.setVisibility(View.VISIBLE);
                back.setOnClickListener(new OnClickListener() {

                    @Override
                    public void onClick(View v) {
                        if (webView.canGoBack()) {
                            webView.goBack();
                        }
                    }
                });
            }
        }
    });
}
// 判断网络连接
    public boolean isNetworkConnected(Context context) {
        if (context != null) {
            ConnectivityManager mConnectivityManager = (ConnectivityManager) context
                    .getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo mNetworkInfo = mConnectivityManager
                    .getActiveNetworkInfo();
            if (mNetworkInfo != null) {
                return mNetworkInfo.isAvailable();
            }
        }
        return false;
    }

    private void setwebSettings() {
    WebSettings settings = webView.getSettings();
    settings.setJavaScriptEnabled(true);// 允许JavaScript执行  
    settings.setBuiltInZoomControls(true);//启用内置的缩放功能,启用后,用户一旦触摸屏幕,就会出现缩放控制图标。这个图标过上几秒会自动消失,但在3.X系统上,如果图标自动消失前退出当前Activity的话,就会报异常。



    settings.setDisplayZoomControls(true);//隐藏webview缩放按钮

    //进行缓存,并读取缓存的方法如下
    settings.setDomStorageEnabled(true);   
    settings.setAppCacheMaxSize(1024*1024*8);  
    String appCachePath = getApplicationContext().getCacheDir().getAbsolutePath();  
    settings.setAppCachePath(appCachePath);  
    settings.setAllowFileAccess(true); 
    settings.setAppCacheEnabled(true); 

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值