在webview中添加adblock



我正试图在我的片段中添加adblock,当我试图初始化webview时,我在new AdBlockerWebView.init(this).initializeWebView(webView);上得到了下划线this

package com.example.bottomnavigationview;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebResourceResponse;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import com.monstertechno.adblocker.AdBlockerWebView;
import com.monstertechno.adblocker.util.AdBlocker;
public class Fragment2 extends Fragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.fragment2,container,false);
View v = inflater.inflate(R.layout.fragment2,container,false);
WebView webView = (WebView)v.findViewById(R.id.webView);
new AdBlockerWebView.init(this).initializeWebView(webView);
webView.setWebViewClient(new Browser_home());
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient());
webView.loadUrl("https://cyber.sports.ru/dota2/match/");
webView.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View view, int i, KeyEvent keyEvent) {
if (keyEvent.getAction() == KeyEvent.ACTION_DOWN) {
if (keyEvent.getKeyCode() == KeyEvent.KEYCODE_BACK){
if(webView != null){
if (webView.canGoBack()){
webView.goBack();
} else {
getActivity().onBackPressed();
}
}
}
}
return true;
}
});
return v;
}

我需要把行新的AdBlockerWebView.init(this).initializeWebView(webView);修复我的错误?

什么参数取init(...)方法?我打赌它是Context,所以你可以在ActivityService和其他扩展Context的类中使用this。但是Fragment不是扩展Context,没有自己的,是使用父Activity的上下文,所以在那里你可以使用例如requireContext()webView.getContext()作为init方法的参数

new AdBlockerWebView.init(webView.getContext()).initializeWebView(webView);

假设你正在使用THIS库

最新更新