WebView的使用

把我的webview用法分析和记录一下。代码里面都有注释。

public WebView webView;

		webView = (WebView) view.findViewById(R.id.webViewBaseView);
		WebSettings settings = webView.getSettings();
		//JavaScript
		settings.setJavaScriptEnabled(true);
		settings.setJavaScriptCanOpenWindowsAutomatically(true);
		// 缓存的使用,WebSettings.LOAD_NO_CACHE(不用缓存)
		settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);

		settings.setDefaultTextEncodingName("UTF-8"); // 设置默认的显示编码
		//webView.addJavascriptInterface(new PersonPlugin(), "window");// new类名,交互访问时使用的别名
		webView.loadUrl(Url);//Url为要访问的网址

		/**
		 * 监听
		 */
		webView.setWebViewClient(new WebViewClient() {
			//在点击请求的是链接是才会调用,重写此方法返回true表明点击网页里面的链接还是在当前的webview
			//里跳转,不跳到浏览器那边。这个函数我们可以做很多操作,比如我们读取到某些特殊的URL,
			//于是就可以不打开地址,取消这个操作,进行预先定义的其他操作,这对一个程序是非常必要的。
			@Override
			public boolean shouldOverrideUrlLoading(WebView view, String url) {
				//点击事件,继续用该WebView加载
				webView.loadUrl(url);
				return true;
			}

			//网络加载时调用
			@Override
			public void onPageStarted(WebView view, String url, Bitmap favicon) {
				super.onPageStarted(view, url, favicon);
				// Log.v("log", "==onPageStarted==="+url);
			}
			//加载完成时调用
			@Override
			public void onPageFinished(WebView view, String url) {
				// Log.v("log", "==onPageFinished===" + url);
				super.onPageFinished(view, url);
			}
			//加载失败时调用
			@Override
			public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
				Log.v("log", "==onReceivedError===" + description + "==" + failingUrl);
				 view.loadUrl(errorHtml);
			}
		});
		webView.setWebChromeClient(new WebChromeClient() {
			//网页加载进度值
			@Override
			public void onProgressChanged(WebView view, int newProgress) {
				// Log.v("log", "==newProgress===" + newProgress);
				super.onProgressChanged(view, newProgress);
			}
			//获取网页的title
			@Override
			public void onReceivedTitle(WebView view, String title) {
//				Log.v("log", "==onReceivedTitle===" + title);
				super.onReceivedTitle(view, title);
			}
		});

按返回键时, 不退出程序而是返回上一浏览页面:

public boolean onKeyDown(int keyCode, KeyEvent event) {       
			if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {       
				mWebView.goBack();       
				return true;       
			 }       
			 return super.onKeyDown(keyCode, event);       
        }
		或者
		@Override
		public void onBackPressed() {
			if (mWebView.canGoBack()) {
				mWebView.goBack();
			} else {
				super.onBackPressed();	
			}
		}



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值