服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Android - Android实现WebView点击拦截跳转原生

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

2022-12-05 13:40qq_41880285 Android

这篇文章主要介绍了Android实现WebView点击拦截跳转原生,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

1. 首先设置Web视图

webview.setWebViewClient(new MyWebViewClient());
webview1.setWebViewClient(new MyWebViewClient());

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// 监听 所有点击的链接,如果拦截到我们需要的,就跳转到相对应的页面。
 
 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.tuohang.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点击拦截跳转原生就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/qq_41880285/article/details/90437561

延伸 · 阅读

精彩推荐