欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android实现WebView点击拦截跳转原生

程序员文章站 2023-08-25 23:01:57
1. 首先设置web视图webview.setwebviewclient(new mywebviewclient());webview1.setwebviewclient(new mywebviewc...

1. 首先设置web视图

webview.setwebviewclient(new mywebviewclient());
webview1.setwebviewclient(new mywebviewclient());

2. 拦截点击的链接,跳转到对应的页面

 // 监听 所有点击的链接,如果拦截到我们需要的,就跳转到相对应的页面。

 private class mywebviewclient extends webviewclient {

  @override
  public boolean shouldoverrideurlloading(webview view, string url) {
   log.e("tsg","url==="+url);
 //这里进行url拦截
   if (url != null && url.contains(https://www.jb51.net)) {
 字符串截取需要的
    string str="";
    str=url.substring(url.lastindexof("id/"),url.length());
    str=str.substring(3,str.indexof("."));
    log.e("tsg","id==="+str);
//    toast.maketext(mactivity, "njhnuj", toast.length_short).show();
 //跳转需要跳转的页面
    intent intent = new intent();
    intent = new intent(getactivity(), spproductdetailactivity.class);
    intent.putextra("goodsid",str);
    getactivity().startactivity(intent);
    return true;

   }
   return super.shouldoverrideurlloading(view, url);
  }
  @override

  public void onpagefinished(webview view, string url) {
   view.getsettings().setjavascriptenabled(true);
   super.onpagefinished(view, url);
  }

 }

补充知识:android9.0 webview空白页面

最近遇见线上客户部分手机9.0系统,在使用到webview的页面,都是空白,无法正常加载出页面。。。

原因是:

在安卓9.0版本中有一个新特性如下

所有应用都使用https

这是对android安全用户的肯定。androidpie上的所有应用程序默认都使用https。android关心您的隐私。

也就是说从android 9.0(api级别28)开始,默认情况下禁用明文支持。因此http的url均无法在webview中加载。

解决办法:

在androidmanifest.xml文件中的application标签添加android:usescleartexttraffic="true"。

android:usescleartexttraffic="true"

以上这篇android实现webview点击拦截跳转原生就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。