从webview所访问的网页端跳转到本地Activity

来源:互联网 发布:淘宝发布宝贝没有反应 编辑:程序博客网 时间:2024/06/07 10:48

在开发中,有时我们需要利用webview去呈现一个网页,但是点击网页里面某个按钮的时候又不希望继续进行网页请求而是希望能够跳转到本地的某个acticity.那么怎么跳转呢?
我在MainActivity简单的写了个Button用于跳转到WebActivity,
WebActicity代码如下:

public class WebAcitivity extends Activity{    private WebView wb;    @Override    protected void onCreate(Bundle savedInstanceState) {        // TODO Auto-generated method stub        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_web);        wb = (WebView) findViewById(R.id.web);        wb.setWebChromeClient(new WebChromeClient());        wb.setWebViewClient(new WebViewClient(){             @Override        public void onPageStarted(WebView view, String url, Bitmap favicon) {                // TODO Auto-generated method stub                super.onPageStarted(view, url, favicon);                Log.d("url", url);//              et.setText(url);            }        @Override        public boolean shouldOverrideUrlLoading(WebView view, String url) {            // TODO Auto-generated method stub            //重写shouldOverrideUrlLoading方法如果是loading注册页面的时候,就拦截请求,跳转到RegActivity.            if(url.equals("https://ssl.mail.163.com/e.mail.163.com/mobilemail/wap/reg.do")){                Intent intent = new Intent(WebAcitivity.this,RegActivity.class);                startActivity(intent);                finish();                return true;            }            return super.shouldOverrideUrlLoading(view, url);        }         }        );        wb.setOnTouchListener(new OnTouchListener() {                  @Override                  public boolean onTouch(View v, MotionEvent event) {                      wb.requestFocus();                       return false;                  }            });           WebSettings ws =  wb.getSettings();         ws.setJavaScriptEnabled(true);         ws.setSupportZoom(true);         ws.setBuiltInZoomControls(true);         wb.loadUrl("http://smart.mail.163.com/");//进入网易邮箱手机页面    }}

是不是很简单,重写shouldOverrideUrlLoading方法,对相关请求进行拦截就行,拦截的规则自己制定下,如url.contains(“xxx”),xxx可以是定义好的,后面对应的接一些参数,截取出来,跳转时将相关参数带入到跳转到的activity.
效果如下:

这里写图片描述

点击进入web

这里写图片描述

点击马上注册

这里写图片描述

就成功跳转到本地activity了…

0 0
原创粉丝点击