给学姐做的一个例子,测试学姐写的移动端HTML页面,这里简单记录一下,方便以后自己查看。
效果图
这里网址换成sina.com。
WebView
Webview是一个用来显示网页的控件,可以加载网络的资源,也可以加载本地资源。
直接上代码,注释也比较详细,应该能看得懂。
public class MainActivity extends Activity {
//定义webview
private WebView mWebView;
//定义加载的url资源
private String url="http://sina.cn/?from=wap";
//定义加载框
private ProgressDialog dialog;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mWebView=(WebView) findViewById(R.id.webview);
//获取焦点,防止页面中有输入框
mWebView.requestFocus();
// 覆盖WebView默认通过第三方或者是系统浏览器打开网页的行为,使得网页可以在WebVIew中打开
mWebView.setWebViewClient(new WebViewClient(){
//返回值是true的时候控制网页在WebView中去打开,如果为false调用系统浏览器或第三方浏览器去打开
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
WebSettings settings = mWebView.getSettings();
//启用支持JavaScript
settings.setJavaScriptEnabled(true);
//WebView加载页面优先使用缓存加载
settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
// WebView加载web资源,加载本地资源"file:///……"
mWebView.loadUrl(url);
mWebView.setWebChromeClient(new WebChromeClient(){
@Override
public void onProgressChanged(WebView view, int newProgress) {
if(newProgress==100){
//网页加载完毕,关闭ProgressDialog
closeDialog();
}else{
//网页正在加载,打开ProgressDialog
openDialog(newProgress);
}
}
//打开ProgressDialog
private void openDialog(int newProgress) {
if(dialog==null){
dialog=new ProgressDialog(MainActivity.this);
dialog.setTitle("正在加载!");
dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
dialog.setProgress(newProgress);
dialog.show();
}else{
dialog.setProgress(newProgress);
}
}
//关闭ProgressDialog
private void closeDialog() {
if(dialog!=null&&dialog.isShowing()){
dialog.dismiss();
dialog=null;
}
}
});
}
//处理返回按键,返回上一个页面而不是退出程序
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode==KeyEvent.KEYCODE_BACK){
if(mWebView.canGoBack()){
//返回上一页面
mWebView.goBack();
return true;
}else{
//退出程序
System.exit(0);
}
}
return super.onKeyDown(keyCode, event);
}
}
为了更好的支持用户体验,可以添加以下几个属性:
设置加入javascript:该属性在websetting中。
WebSettings settings = mWebView.getSettings(); settings.setJavaScriptEnabled(true);//启用支持JavaScript
- 判断页面加载过程,使用progressDialog
- 使用缓存,优先使用缓冲加载
settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);