'Add adblock in webview
I'm trying to add adblock in my fragment, and when I'm tryed inisialize webview I got underline this on new AdBlockerWebView.init(this).initializeWebView(webView); line
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;
}
where I need put line new AdBlockerWebView.init(this).initializeWebView(webView); to fix my error?
Solution 1:[1]
what param takes init(...) method? I bet its Context, so you can use this in Activity, Service and other classes extending Context. but Fragment isn't extending Context, don't have own, is using parent Activitys context, so in there you may use e.g. requireContext() or webView.getContext() as param for init method
new AdBlockerWebView.init(webView.getContext()).initializeWebView(webView);
assuming you are using THIS library
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | snachmsm |
