基本代码:
Uri uri = Uri.parse("http://www.baidu.com");
Intent intent = new Intent(this,uri);
startActivity(intent);
1.将webview加入你的应用
<WebView
android:id = "@+id/WebView"
android:layout_width="match_parent"
android:layout_height="match_parent">
</WebView>
2.使用webview加载页面
web资源用:webview.loadUrl("http://www.baidu.com");
本地文件用:webview.loadUr("file:///android_asset/XX.html);
webview.requestFocus();//是页面获得焦点
3.Mainfest.xml
<uses-permission andriod:name = "android.permission.INTERNET"/>
4.处理页面导航
//覆盖webview默认通过第三方或者是系统浏览器打开网页的行为,是的网页 可以在
webview中打开
webview。loadUrl("http://www.baidu.com");
webview.setWebviewClient(new WebViewClient(){
@override
public boolean shouldOverriderUrlLoading(webview view,String url){
//返回值是true的时候控制网页在webview中打开,false的时候需要用第三方
浏览器打开
view.loadUri(url);
return true;
}
//WebViewClient帮助WebView去处理一些页面控制和请求通知
});
//启用支持JavaScript
WebSettings settings = webView.getSettings();
settings.setJavaScripteEnabled(true);
}
5.后退与前进
goBack()和goFore();
//改写物理按键---返回的逻辑
@Override
publiv boolean onKeyDown(int keyCode,KeyEvent event){
if(keyCode == KeyEvent.KEYCODE_BACK){
if(webview.canGoBack()){
webview.goBack();
return true;
}else{
system.exit(0);//退出程序
}
}
}
6.判断页面加载过程
private ProgressDialog dialog;
webView.setWebChromeClient(new WebChromeClient(){
public void onProgressChanged(Webview view,int newProgress){
if(newProgress == 100){
closeDialoag();
}else{
openDialog();
}
}
private void closeDialog(){
if(dialog!=null&&dialog.isEmpty(0){
dialog.dismiss();
}
}
private void openDialog(){
if(dialog == null){
dialog = new ProgressDialog(MainActivity.this);
dialog.setTitle("正在加载");
dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
dialog.setProgress(newProgress);
dialog.show()
}else{
dialog.setProgress(newProgress);//刷新当前的进度
}
}
});
7.webview缓存的运用
//webview加载页面优先使用缓存加载
setting.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);