Android WebView的使用与后退键处理详细讨论
public class MyWebViewActivity extends Activity {
private Context context = this;
// 底部菜单View
// public static View bottomView;
private WebViewProgressBar webView;
private String url;
private HtmlBean bean;
// 手势
private GestureDetector mGestureDetector;
private TextView btn_goback;
String title;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.usershop_layout);
MyUtils.checkStrictMode(true);
url = getIntent().getStringExtra("url");
if (!TextUtils.isEmpty(title)) {
TextView tv_title = (TextView) findViewById(R.id.title_text);
if (title.length() > 6) {
title = title.substring(0, 6);
}
tv_title.setText(title);
}
if (TextUtils.isEmpty(url)) {
Toast.makeText(this, "没有找到相关的链接地址", Toast.LENGTH_LONG).show();
return;
}
initWebView();
this.initJsInterface();
initGestureDetector();
}
// 初始化webView
private void initWebView() {
// 底部菜单
// bottomView = findViewById(R.id.user_bottom);
btn_goback=(TextView)findViewById(R.id.btn_goback);
// WebView
webView = (WebViewProgressBar) findViewById(R.id.user_webview);
// 滚动条
webView.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY);
// 脚本支持
webView.getSettings().setJavaScriptEnabled(true);
// 缩放
webView.getSettings().setSupportZoom(true);
webView.loadUrl(url);
// WebView客户端
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String nextUrl) {
// 下一个链接
try {
if(title.equals("个人中心")){
url=nextUrl;
}
} catch (Exception e) {
}
view.loadUrl(nextUrl);
return true;
}
// 开始加载
@Override
public void onPageStarted(WebView view, String url2, Bitmap favicon) {
// TODO Auto-generated method stub
}
// 加载完毕
@Override
public void onPageFinished(WebView view, String url2) {
}
});
btn_goback.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
// WebView的滑动事件交个手势处理
webView.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
return mGestureDetector.onTouchEvent(event);
}
});
}
// 初始化手势
private void initGestureDetector() {
mGestureDetector = new GestureDetector(this, new OnGestureListener() {
@Override
public boolean onSingleTapUp(MotionEvent e) {
// TODO Auto-generated method stub
return false;
}
@Override
public void onShowPress(MotionEvent e) {
// TODO Auto-generated method stub
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2,
float distanceX, float distanceY) {
// TODO Auto-generated method stub
return false;
}
@Override
public void onLongPress(MotionEvent e) {
// TODO Auto-generated method stub
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2,
float velocityX, float velocityY) {
return false;
}
@Override
public boolean onDown(MotionEvent e) {
// TODO Auto-generated method stub
return false;
}
}, new Handler() {
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
ShareDao.onActivityResult(requestCode, resultCode, data);
super.onActivityResult(requestCode, resultCode, data);
}
public void btn_on(View view){
if(webView.canGoBack()){
webView.goBack(); // goBack()表示返回WebV
}else {
finish();
}
}
}
}
- .NET Core系列之MemoryCache 初识
- 007手机一键Root(安机网一键Root) v3.0 官方最新版 一键ROOT您的Android手机
- 12306密码被盗了怎么办?12306密码外泄解决方法
- 12个字的qq网名
- 150M迷你型无线路由器怎么设置?
- 192.168.1.1打不开怎么办?路由器192.168.1.1打不开的原因以及解决办法
- 2011年电子报合订本 电子报 编辑部 中文 PDF版 [84M]
- 2015年1月15日小米新旗舰发布会现场图文直播
- 2016.3.1vivo Xplay5新品发布会现场视频直播 优酷直播
- 2016华为P9发布会视频直播地址 4月15日华为P9国行发布会直播