Android Open Source - website-in-webview Main Activity






From Project

Back to project page website-in-webview.

License

The source code is released under:

Apache License

If you think the Android project website-in-webview listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package info.abdolahi.showtheweb;
// w  w w . j a v  a  2 s .c o m
/*
 * Copyright (C) 2015 Ali Abdolahi
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file 
 * except in compliance with the License. You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under the 
 * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 
 * either express or implied. See the License for the specific language governing permissions and 
 * limitations under the License.
 */

import android.annotation.SuppressLint;
import android.app.Activity;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.Window;
import android.webkit.WebSettings;
import android.webkit.WebSettings.RenderPriority;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ProgressBar;
import android.widget.RelativeLayout;

public class MainActivity extends Activity {

  // set your custom url here
  String url = "http://www.YOURCUSTOMURL.com";

  // if you want to show progress bar on splash screen
  Boolean showProgressOnSplashScreen = true;

  WebView mWebView;
  ProgressBar prgs;
  RelativeLayout splash, main_layout;

  @SuppressWarnings("deprecation")
  @SuppressLint("SetJavaScriptEnabled")
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);
    getWindow().setFeatureInt(Window.FEATURE_PROGRESS,
        Window.PROGRESS_VISIBILITY_ON);

    mWebView = (WebView) findViewById(R.id.wv);
    prgs = (ProgressBar) findViewById(R.id.progressBar);
    main_layout = (RelativeLayout) findViewById(R.id.main_layout);

    // splash screen View
    if (!showProgressOnSplashScreen)
      ((ProgressBar) findViewById(R.id.progressBarSplash)).setVisibility(View.GONE);
    splash = (RelativeLayout) findViewById(R.id.splash);

//    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
//
//      // get status bar height to push webview below that
//      int result = 0;
//      int resourceId = getResources().getIdentifier("status_bar_height",
//          "dimen", "android");
//      if (resourceId > 0) {
//        result = getResources().getDimensionPixelSize(resourceId);
//      }
//
//      // set top padding to status bar
//      main_layout.setPadding(0, result, 0, 0);
//    }
    
    mWebView.loadUrl(url);

    // control javaScript and add html5 features
    mWebView.setFocusable(true);
    mWebView.setFocusableInTouchMode(true);
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.getSettings().setRenderPriority(RenderPriority.HIGH);
    mWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
    mWebView.getSettings().setDomStorageEnabled(true);
    mWebView.getSettings().setAppCacheEnabled(true);
    mWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
    mWebView.getSettings().setDatabaseEnabled(true);
    mWebView.getSettings().setDatabasePath(
        this.getFilesDir().getPath() + this.getPackageName()
            + "/databases/");

    // this force use chromeWebClient
    mWebView.getSettings().setSupportMultipleWindows(true);

    mWebView.setWebViewClient(new WebViewClient() {

      @Override
      public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return false;
      }

      @Override
      public void onPageStarted(WebView view, String url, Bitmap favicon) {
        super.onPageStarted(view, url, favicon);
        if (prgs.getVisibility() == View.GONE) {
          prgs.setVisibility(View.VISIBLE);
        }
      }

      @Override
      public void onLoadResource(WebView view, String url) {
        super.onLoadResource(view, url);
      }

      @Override
      public void onPageFinished(WebView view, String url) {
        super.onPageFinished(view, url);

        if (prgs.getVisibility() == View.VISIBLE)
          prgs.setVisibility(View.GONE);

        // check if splash is still there, get it away!
        if (splash.getVisibility() == View.VISIBLE)
          splash.setVisibility(View.GONE);
        // slideToBottom(splash);

      }

    });

  }

  /**
   * To animate view slide out from top to bottom
   * 
   * @param view
   */
  // void slideToBottom(View view) {
  // TranslateAnimation animate = new TranslateAnimation(0, 0, 0,
  // view.getHeight());
  // animate.setDuration(2000);
  // animate.setFillAfter(true);
  // view.startAnimation(animate);
  // view.setVisibility(View.GONE);
  // }

  @Override
  public boolean onKeyDown(final int keyCode, final KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
      mWebView.goBack();
      return true;
    }
    return super.onKeyDown(keyCode, event);
  }

}




Java Source Code List

info.abdolahi.showtheweb.MainActivity.java