sandeep03edu

PlayStore WebView Snippet

Mar 2nd, 2023 (edited)
183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.54 KB | None | 0 0
  1. // Webview Activity
  2.  
  3. import androidx.appcompat.app.AppCompatActivity;
  4.  
  5. import android.graphics.Bitmap;
  6. import android.os.Bundle;
  7. import android.view.View;
  8. import android.webkit.WebResourceError;
  9. import android.webkit.WebResourceRequest;
  10. import android.webkit.WebSettings;
  11. import android.webkit.WebView;
  12. import android.webkit.WebViewClient;
  13.  
  14. import es.dmoral.toasty.Toasty;
  15.  
  16. public class AboutUs extends AppCompatActivity {
  17.  
  18.     WebView mWebView;
  19.  
  20.     @Override
  21.     protected void onCreate(Bundle savedInstanceState) {
  22.         super.onCreate(savedInstanceState);
  23.         setContentView(R.layout.activity_about_us);
  24.         mWebView = findViewById(R.id.about_us_webview);
  25.  
  26.         // TODO : Change the URL with Privacy policy url
  27.         mWebView.loadUrl(Constants.ABOUT_US_URL);
  28.         mWebView.getSettings().setAllowFileAccess(false);
  29.         webSettings();
  30.     }
  31.  
  32.     private void webSettings() {
  33.         mWebView.setWebViewClient(new WebViewClient() {
  34.             @Override
  35.             public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
  36.                 super.onReceivedError(view, request, error);
  37.                 try {
  38.                     mWebView.stopLoading();
  39.                 } catch (Exception e) {
  40.                 }
  41.  
  42.                 Toasty.error(getApplicationContext(), "No Internet Connection!").show();
  43.                 mWebView.loadUrl("file:///android_asset/net_error.html");
  44.             }
  45.  
  46.             @Override
  47.             public void onPageStarted(WebView view, String url, Bitmap favicon) {
  48.                 super.onPageStarted(view, url, favicon);
  49.             }
  50.  
  51.             @Override
  52.             public void onPageFinished(WebView view, final String url) {
  53.                 super.onPageFinished(view, url);
  54.             }
  55.  
  56.             @Override
  57.             public boolean shouldOverrideUrlLoading(WebView view, String url) {
  58.                 // TODO : Change the URL with Privacy policy url
  59.                 if(!url.equals(Constants.ABOUT_US_URL)){
  60.                     // Returing false to not display any other URL than About us
  61.                     return false;
  62.                 }
  63.  
  64.                 view.loadUrl(url);
  65.                 return true;
  66.             }
  67.  
  68.         });
  69.  
  70.         WebSettings webSettings = mWebView.getSettings();
  71.  
  72.         webSettings.setDomStorageEnabled(true);
  73.         webSettings.setRenderPriority(WebSettings.RenderPriority.HIGH);
  74.         webSettings.getSaveFormData();
  75.         webSettings.setDisplayZoomControls(false);
  76.         webSettings.setUseWideViewPort(true);
  77.         webSettings.setJavaScriptEnabled(true);
  78.         webSettings.setSavePassword(true);
  79.         webSettings.getJavaScriptEnabled();
  80.         webSettings.setCacheMode(WebSettings.LOAD_DEFAULT);
  81.         webSettings.setGeolocationEnabled(true);
  82.         webSettings.setAllowFileAccess(true);
  83.         webSettings.setAllowContentAccess(true);
  84.         webSettings.setLoadsImagesAutomatically(true);
  85.         mWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
  86.  
  87.     }
  88. }
  89.  
  90. // Manifest changes
  91. // Added the below parameter as true
  92.  <application
  93.         ...
  94.         android:usesCleartextTraffic="true"
  95.         ...>
  96.  
  97.  
  98. // Add these meta data values for activities linked with Webviews
  99.  <activity
  100.             android:name=".AboutUs "
  101.             android:configChanges="orientation|screenSize"
  102.             android:exported="false"
  103.             android:label="About Us">
  104.             <meta-data
  105.                 android:name="android.webkit.WebView.EnableSafeBrowsing"
  106.                 android:value="true" />
  107.         </activity>
Advertisement
Add Comment
Please, Sign In to add comment