ViewPagerWeb的client

执行逻辑处理。前进后退。过滤302跳转。


import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.os.Message;
import android.support.v4.view.ViewPager;
import android.util.Log;
import android.webkit.WebView;
import android.webkit.WebView.HitTestResult;
import android.webkit.WebViewClient;


@SuppressWarnings("unused")
public class CustomWebViewClient extends WebViewClient {
	private Context mContext;
	private ViewPager browViewPager;
	private ViewPagerAdapter browViewPagerAdapter;
	
	
	public CustomWebViewClient(Context mContext,ViewPager browViewPager,ViewPagerAdapter browViewPagerAdapter){
		this.mContext=mContext;
		this.browViewPager=browViewPager;
		this.browViewPagerAdapter=browViewPagerAdapter;
	}
	public CustomWebViewClient(){

	}
	
	@Override
	public void onPageFinished(WebView view, String url) {

		super.onPageFinished(view, url);
	
	
	}

	@Override
	public void onPageStarted(WebView view, String url, Bitmap favicon) {
		super.onPageStarted(view, url, favicon);
		
	}
		
	
	
	@Override
	public boolean shouldOverrideUrlLoading(WebView view, String url) {	
		
		HitTestResult hit = view.getHitTestResult();
		int hitType = hit.getType();
		if (hitType == HitTestResult.SRC_ANCHOR_TYPE) {// 点击超链接
			// 这里执行自定义的操作
			CustomWebView mCustomWebView = new CustomWebView(mContext);
			CustomWebViewClient mCustomWebViewClient = new CustomWebViewClient(mContext, browViewPager, browViewPagerAdapter);
			CustomWebChromeClient mCustomWebChromeClient = new CustomWebChromeClient();
			mCustomWebView.setWebViewClient(mCustomWebViewClient);
			mCustomWebView.setWebChromeClient(mCustomWebChromeClient);

			if (browViewPager.getCurrentItem() < browViewPagerAdapter.getPageViews().size() - 1) {
				for (int i = browViewPagerAdapter.getPageViews().size() - 1; i > browViewPager.getCurrentItem(); i--) {
					browViewPagerAdapter.getPageViews().remove(i);
				}
			}
			
			mCustomWebView.loadUrl(url);
			browViewPagerAdapter.getPageViews().add(mCustomWebView);
			browViewPagerAdapter.notifyDataSetChanged();
			browViewPager.setCurrentItem(browViewPagerAdapter.getPageViews().size() - 1);
			return true;// 返回true浏览器不再执行默认的操作
		} else if (hitType == 0) {// 重定向时hitType为0
			return false;// 不捕获302重定向
		} else {
			return false;
		}
	}
	
	@Override 
	public void onFormResubmission(WebView view, Message dontResend,Message resend) {
		resend.sendToTarget();
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值