软件编程
位置:首页>> 软件编程>> Android编程>> Android实现WebView点击拦截跳转原生

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

作者:qq_41880285  发布时间:2023-01-06 23:47:38 

标签:Android,WebView,拦截,原生

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"

来源:https://blog.csdn.net/qq_41880285/article/details/90437561

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com