WebView的简单使用

1.首先看下调用系统的自带浏览器或者自己下载的浏览器


<pre name="code" class="java">Uri uri=Uri.parse(url);//url为你要的链接地址
Intent intent =new Intent(Intent.ACTION_VIEW,Uri);
startActivity(intent);

 

2.若要自己实现一个浏览器,只需要在布局文件中差入WebView即可

<WebView
	android:id="@+id/webView"
	android:layout_width="match_parent"
	android:layout_height="match_parent"
</WebView>

还必须使用loadUrl();方法

webView=(WebView) findViewById(R.id.webView);
webView.loadUrl("http://baidu.com");

并且在清单文件中加入网络访问权限

<manifest>
<uses-permission android:name="android.permission.INTERNET"/>
...
</manifest>

但是如此的话还是会去默认调用系统自带的浏览器


3.要使WebView自己加载效果则必须加入另一个方法去覆盖原始的WebView调用方法


WebViewClient帮助WebView去处理一些页面控制的请求通知

webView.setWebViewClient(new WebViewClient());
如果以上还不行的话,就重写WebViewClient()中的方法
中使其返回值
使用view.loadUrl(url);
True:控制网页在WebView中去打开
flase:控制第三方或系统自带
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {<span style="white-space:pre">	</span>
// TODO Auto-generated method stub
<span style="white-space:pre">		</span>return true;
}

4.在WebView中使用Javascript
启用JavaScript可以通过WebView中带有的WebSetting来启用它
你可以通过getSettings()来获取WebSettings的值,
然后通过setJavaScriptEnabled()来启用JavaScript
WebView webView=(WebView)findViewById(R.id.webview);
WebSetings webSettings=webView.getSettings();
webSettings.setJavaScriptEnabled(true);
//则可以支持JavaScript的脚本语言

5.后退与前进
当你的WebView覆盖URL加载,他会自动生成历史访问记录,你可以通过goBack()
或goForward()向前或向后访问过的站点,否则一旦按了返回键则就直接退出了应用

给人一种很不好的体验

@Override
public boolean onKeyDown(int keyCode,KeyEvent event)
{
	if(keyCode==KeyEvent.KEYCEDE_BACK)
	{
		if(webView.canGoBack())
		{
			webView.goBack();
			return true;
		}
		else
		{
			System.exit(0);//退出程序	
		}
		
	}
	return super.onKeyDown(keyCode,event);

}

7判断页面加载过程
直观显示页面的加载过程
制作进度条给用户以良好的体验效果

private  ProgressDialog dialog;

webView.setWebChromeClient(new WebChromeClient()
		{
			@Override
			public void onProgressChanged(WebView view,int newProgress)
			{
		//newProgress 是1到100的数字,正好从1--100的标识进度条
				if(newProgress==100)
				{//加载完成
					closeProgress();
				}
				else
				{
				     //加载中,打开ProgressDialog
					openProgress(newProgress);
				}
			}
		});

    
private void closeProgress()
    {
    	 if(dialog!=null&&dialog.isShowing())
    	{
    	   dialog.dismiss();
    	  dialog=null;
    	}
    }

    private void openProgress(int newProgress)
    {
    	 if(dialog==null)
    	{
    	    dialog=new ProgressDialog(MainActivity.this);
    	    dialog.setTitle("正在加载");
    	    dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
    	    dialog.setProgress(newProgress);
    	   dialog.show();
    	}
    	else
    	{
    	    dialog.setProgress(newProgress);
    	}
    }


8.WebView缓存的运用
使用WebSettings settings=webView.getSettings();
优先使用缓存
webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
不适用缓存
webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值