1. 程式人生 > 程式設計 >Android實現WebView點選攔截跳轉原生

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"

以上這篇Android實現WebView點選攔截跳轉原生就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。