Advertisement
retnet

webview backpress go back android java

Apr 2nd, 2022
1,155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.38 KB | None | 0 0
  1. package cugh.trade.bahanomongan;
  2.  
  3. import android.annotation.SuppressLint;
  4. import android.app.ProgressDialog;
  5. import android.os.Build;
  6. import android.os.Bundle;
  7. import android.view.KeyEvent;
  8. import android.view.LayoutInflater;
  9. import android.view.MotionEvent;
  10. import android.view.View;
  11. import android.view.ViewGroup;
  12. import android.webkit.WebChromeClient;
  13. import android.webkit.WebSettings;
  14. import android.webkit.WebView;
  15. import android.webkit.WebViewClient;
  16. import android.widget.TextView;
  17.  
  18. import androidx.annotation.NonNull;
  19. import androidx.fragment.app.Fragment;
  20.  
  21. import java.util.Objects;
  22.  
  23.  
  24. public class BlogWebViewFragment extends Fragment {
  25.  
  26.     public SmartPreferences smartPreferences;
  27.     public static final String TAG = BlogWebViewFragment.class.getSimpleName();
  28.     public ProgressDialog loading;
  29.     public WebView webView;
  30.     @SuppressLint("SetJavaScriptEnabled")
  31.     @Override
  32.     public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
  33.                              Bundle savedInstanceState) {
  34.         View view = View.inflate(getContext(), R.layout.fragment_blog, null);
  35.         smartPreferences = new SmartPreferences(requireContext());
  36.         loading = ProgressDialog.show(requireContext(),null,"Please wait...",false,true);
  37.         webView = view.findViewById(R.id.webview);
  38.         TextView tvError = view.findViewById(R.id.tv_error);
  39.  
  40.         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
  41.             if (NetworkState.isOnline(Objects.requireNonNull(getContext()))) {
  42.                 tvError.setVisibility(View.GONE);
  43.                 WebSettings webSettings = webView.getSettings();
  44.                 webSettings.setJavaScriptEnabled(true);
  45.                 webView.loadUrl(Constants.WEB_URL);
  46.                 webView.setWebChromeClient(new WebChromeClient());
  47.                 webView.setWebViewClient(new WebViewClient() {
  48.                     @Override
  49.                     public boolean shouldOverrideUrlLoading(WebView view, String url) {
  50.                         view.loadUrl(url);
  51.  
  52.                         return true;
  53.                     }
  54.                     @Override
  55.                     public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
  56.                         // TODO: handle error in some way
  57.                     }
  58.                     @Override
  59.                     public void onPageFinished(WebView view, String url) {
  60.                         super.onPageFinished(view, url);
  61.                         if (webView.getProgress() == 100) {
  62.                             loading.dismiss();
  63.                         }
  64.                     }
  65.                 });
  66.  
  67.                 webView.canGoBack();
  68.                 webView.setOnKeyListener(new View.OnKeyListener() {
  69.                     public boolean onKey(View v, int keyCode, KeyEvent event) {
  70.                         if (keyCode == KeyEvent.KEYCODE_BACK
  71.                                 && event.getAction() == MotionEvent.ACTION_UP
  72.                                 && webView.canGoBack()) {
  73.                             webView.goBack();
  74.                             return true;
  75.                         }
  76.                         return false;
  77.                     }
  78.                 });
  79.  
  80.             } else {
  81.                 webView.setVisibility(View.GONE);
  82.             }
  83.         }
  84.  
  85.         return view;
  86.     }
  87. }
  88.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement