package com.andbase.blog;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.webkit.JsPromptResult;
import android.webkit.JsResult;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ProgressBar;
import com.ab.activity.AbActivity;
import com.ab.view.titlebar.AbTitleBar;
import com.andbase.R;
import com.andbase.global.Constant;
import com.andbase.global.MyApplication;
/**
* © 2012 amsoft.cn
* 名称:WebActivity
* 描述:网站Wap
* @author 还如一梦中
* @date 2011-11-8
* @version
*/
public class WebActivity extends AbActivity {
//主界面
private WebView mWebView = null;
private ProgressBar mProgressBar = null;
private MyApplication application;
private AbTitleBar mAbTitleBar = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//设置布局
setAbContentView(R.layout.web);
application = (MyApplication)abApplication;
mAbTitleBar = this.getTitleBar();
mAbTitleBar.setTitleText(R.string.blog_name);
mAbTitleBar.setLogo(R.drawable.button_selector_back);
mAbTitleBar.setTitleBarBackground(R.drawable.top_bg);
mAbTitleBar.setTitleTextMargin(10, 0, 0, 0);
mAbTitleBar.setLogoLine(R.drawable.line);
mAbTitleBar.setVisibility(View.GONE);
mWebView = (WebView)findViewById(R.id.webView);
mProgressBar = (ProgressBar)findViewById(R.id.progress_bar);
//设置支持JavaScript脚本
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
//设置可以访问文件
webSettings.setAllowFileAccess(true);
//设置可以支持缩放
webSettings.setSupportZoom(true);
//设置默认缩放方式尺寸是far
webSettings.setDefaultZoom(WebSettings.ZoomDensity.MEDIUM);
//设置出现缩放工具
webSettings .setBuiltInZoomControls(true);
webSettings.setDefaultFontSize(20);
//访问assets目录下的文件
String url = Constant.BASEURL+"m";
mWebView.loadUrl(url);
// 设置WebViewClient
mWebView.setWebViewClient(new WebViewClient() {
// url拦截
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// 使用自己的WebView组件来响应Url加载事件,而不是使用默认浏览器器加载页面
view.loadUrl(url);
// 相应完成返回true
return true;
//return super.shouldOverrideUrlLoading(view, url);
}
// 页面开始加载
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
mProgressBar.setVisibility(View.VISIBLE);
super.onPageStarted(view, url, favicon);
}
// 页面加载完成
@Override
public void onPageFinished(WebView view, String url) {
mProgressBar.setVisibility(View.GONE);
super.onPageFinished(view, url);
}
// WebView加载的所有资源url
@Override
public void onLoadResource(WebView view, String url) {
super.onLoadResource(view, url);
}
@Override
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
super.onReceivedError(view, errorCode, description, failingUrl);
}
});
// 设置WebChromeClient
mWebView.setWebChromeClient(new WebChromeClient() {
@Override
// 处理javascript中的alert
public boolean onJsAlert(WebView view, String url, String message,
final JsResult result) {
return super.onJsAlert(view, url, message, result);
};
@Override
// 处理javascript中的confirm
public boolean onJsConfirm(WebView view, String url,
String message, final JsResult result) {
return super.onJsConfirm(view, url, message, result);
};
@Override
// 处理javascript中的prompt
public boolean onJsPrompt(WebView view, String url, String message,
String defaultValue, final JsPromptResult result) {
return super.onJsPrompt(view, url, message, defaultValue, result);
};
//设置网页加载的进度条
@Override
public void onProgressChanged(WebView view, int newProgress) {
mProgressBar.setProgress(newProgress);
super.onProgressChanged(view, newProgress);
}
//设置程序的Title
@Override
public void onReceivedTitle(WebView view, String title) {
setTitle(title);
super.onReceivedTitle(view, title);
}
});
mAbTitleBar.getLogoView().setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
back();
}
});
}
/**
* 拦截返回键
*/
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// 是否触发按键为back键
if (keyCode == KeyEvent.KEYCODE_BACK) {
back();
return true;
// 如果不是back键正常响应
} else {
return super.onKeyDown(keyCode, event);
}
}
private void back(){
if(mWebView.canGoBack()){
mWebView.goBack();
}else{
finish();
}
}
}