WebView 可调用浏览器显示网页
要在WebView中加载页面 使用loadUrl()
Web资源:webView.loadUrl(“http://www.baidu.com”)
加载本地文件则:WebView.loadUrl(“file:///android_assets/XX.html”);
// 使页面获得焦点
WebView.requestFocus();
在它WebView工作之前,要保证应用能够访问网络。
也就是说 需要在配置文件中获取INTERNET权限。
<manifest ...>
<uses-permission android:name="android.permission.INTERNET"/>
.....
</manifest>
具体例子 example:
-----------------------------------------------------------------------------------------
/*实例化WebView
*在mainfest配置文件中添加网络访问权限
*/
public class MainActivity extends Activity {
private String url=" http://114.215.107.160";
private WebView wv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
wv = (WebView) findViewById(R.id.webView);
// Uri uri = Uri.parse(url); //url 是你想要访问的网站
// Intent intent = new Intent(Intent.ACTION_VIEW, uri);
// startActivity(intent);
// 访问本地文件html,该文件需放在assets目录下
//wv.loadUrl(" file:///android_assets/example.html");
//访问外部网页
wv.loadUrl(" http://114.215.107.160");
//下面将覆盖webView默认通过第三方或者自带浏览器打开网页的行为,使网页在WebView中打开
wv.setWebViewClient(new WebViewClient(){
public boolean shouldOverrideUrlLoading(WebView view,String url){
//返回true 则在WebView中打开 false 则调用第三方或系统自带
view.loadUrl(url);
return true;
}
//WebViewClient帮助 WebView 处理页面控制和页面请求
});
}
-------------------------------------------------------------------------------------------------------------
在WebView 中可使用JavaScript
实现方法:
//启用javaScript
WebSetting settings = wv.getSettings();
settings.setJavaScriptEnable(true);
------------------------------------------------------------------------------------------------
实现后退和前进
当你的WebView覆盖了原来的URL加载,它便会生成访问记录,可以
通过goBack()或goForward()向前向后访问已经访问过的站点。
代码实现:
//改写物理按键返回键的逻辑
@Override
public boolean onKeyDown(int keyCode,KeyEvent event){
if(keyCode==KeyEvent.KEYCODE_BACK)
{
if(webview.canGoBack()){//判断是否可以返回上一界面
webview.goBack();//返回上一界面
return true;
}
else{
System.exit(0); //退出程序
}
}
retrun super.onkeyDown(keyCode,event);
}
-----------------------------------------------------------------------------------------------
判断页面加载过程
因为有些页面加载比较缓慢,所以需要加载进度条。
webview.setWebChromeClient(new WebChromeClient(){
@Override
public void onProgressChanged(WebView view,int newProgress){
//newProgress 1-100之间的整数
if(newProgress==100)
{
//网页加载完毕,自定义函数关闭进度条对话框
closeDialog();
}
else
{
//网页正在加载,自定义一个函数打开对话框
openDialog(newProgress);
}
}
})
-------------------------------------------------------------------------------------------
WebView缓存的应用(增加浏览速度)
//WebView加载页面优先使用缓存加载
WebSetting settings = wv.getSettings();
settrings.setCacheMode(WevSettrings.LOAD_CACHE_ELSE_NETWORK);