Android WebView Application With Splash Screen and Share Button

0
3718

Android Webview Application:

Android WebView Application With Splash Screen and Share Button

Features:

1.Having Splash Screen
2.Loading Animation before Website Loads into App
3.Share Button on The Action Bar.
Step 1.Open Android Studio and Select File=>New Project. . Selete Empty Activity. And Click Finish

**Now Copy and Paste below Code into MainActivity.java file. Replace my project name with your’s in 1st line of code. In Line No 27 replace “http://www.techobd.com” with your url.

import android.app.ActionBar;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.ShareActionProvider;
public class MainActivity extends Activity {
    private WebView mWebView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mWebView = (WebView) findViewById(R.id.activity_main_webview);
        WebSettings webSettings = mWebView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        mWebView.loadUrl(“https://techobd.com/”);
        mWebView.setWebViewClient(new com.androidwebviewapp.aonik.MyAppWebViewClient(){
            @Override
            public void onPageFinished(WebView view, String url) {
                //hide loading image
                findViewById(R.id.progressBar1).setVisibility(View.GONE);
                //show webview
                findViewById(R.id.activity_main_webview).setVisibility(View.VISIBLE);
            }});
    }
    @Override
    public void onBackPressed() {
        if(mWebView.canGoBack()) {
            mWebView.goBack();
        } else {
            super.onBackPressed();
        }
    }
    private ShareActionProvider mShareActionProvider;
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        /** Inflating the current activity’s menu with res/menu/items.xml */
        getMenuInflater().inflate(R.menu.menu_main, menu);
        /** Getting the actionprovider associated with the menu item whose id is share */
        mShareActionProvider = (ShareActionProvider) menu.findItem(R.id.share).getActionProvider();
        /** Setting a share intent */
        mShareActionProvider.setShareIntent(getDefaultShareIntent());
        return super.onCreateOptionsMenu(menu);
    }
    /** Returns a share intent */
    private Intent getDefaultShareIntent(){
        Intent intent = new Intent(Intent.ACTION_SEND);
        intent.setType(“text/plain”);
        intent.putExtra(Intent.EXTRA_SUBJECT, “Convert Website to Android Application”);
        intent.putExtra(Intent.EXTRA_TEXT,” Visit www.techobd.com if you Want to Convert your Website or Blog to Android Application”);
        return intent;
    }
}

**Now Right Click on your Project name under java folder and select create New Class and Name it Splash and copy and paste below code into Splash.java file

import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.app.ActionBar;
import android.app.Activity;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;

@SuppressLint(“NewApi”)
public class Splash extends Activity {

@TargetApi(Build.VERSION_CODES.HONEYCOMB)
@SuppressLint(“NewApi”)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);

ActionBar actionBar = getActionBar();
actionBar.hide();

Thread t =new Thread(){
public void run(){
try{
sleep(10000);
}catch(InterruptedException e){
e.printStackTrace();
}finally{
Intent i =new Intent(Splash.this,MainActivity.class);
startActivity(i);
}
}
};
t.start();
}
@Override
public void onPause(){
super.onPause();
finish();
}

}

**Now Create one more java class file like above and name it as MyAppWebViewClient now copy and paste below code into MyAppWebViewClient.java file.

import android.content.Intent;
import android.net.Uri;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MyAppWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if(Uri.parse(url).getHost().endsWith(“www.helploger.com”)) {
            return false;
        }
        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
        view.getContext().startActivity(intent);
        return true;
    }
}
**Now Copy Below Code into activity_main.xml<LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android”
xmlns:tools=”http://schemas.android.com/tools”
android:layout_width=”match_parent”
android:layout_height=”match_parent”
tools:context=”.MainActivity”
android:orientation=”vertical”><ProgressBar
android:id=”@+id/progressBar1″
style=”?android:attr/progressBarStyleSmall”
android:layout_width=”wrap_content”
android:layout_height=”match_parent”
android:layout_centerHorizontal=”true”
android:indeterminate=”false”
android:layout_gravity=”center” /><WebView
android:id=”@+id/activity_main_webview”
android:layout_width=”match_parent”
android:layout_height=”match_parent”
android:visibility=”gone”/></LinearLayout>

**Now We Will Create new layout under folder layouts. For that Right Click on Layout and select new Xml File as shown in below figure. Name Layout as activity_splash.
Now Copy and Paste Below Code into activity_splash.xml

<RelativeLayout xmlns:android=”http://schemas.android.com/apk/res/android”
    xmlns:tools=”http://schemas.android.com/tools”
    android:layout_width=”match_parent”
    android:layout_height=”match_parent”
    android:background=”@mipmap/vert_loading”
    tools:context=”.Splash” >
</RelativeLayout>
Now open menu_main.xml in menu folder and paste below code into it.

<menu xmlns:android=”http://schemas.android.com/apk/res/android”
xmlns:tools=”http://schemas.android.com/tools” tools:context=”.MainActivity”>
<item
android:id=”@+id/share”
android:title=”@string/share”
android:showAsAction=”ifRoom”
android:actionProviderClass=”android.widget.ShareActionProvider”/>

</menu>

Now Open AndroidManifest.xml file From manifests folder and copy below code into it. replace project name with your project name in the 3rd line

<?xml version=”1.0″ encoding=”utf-8″?>
<manifest xmlns:android=”http://schemas.android.com/apk/res/android”
package=”com.androidwebviewapp.aonik” >
<uses-permission android:name=”android.permission.INTERNET” />
<application
android:allowBackup=”true”
android:icon=”@mipmap/ic_launcher”
android:label=”@string/app_name”
android:theme=”@android:style/Theme.Holo.Light” >
<activity
android:name=”.MainActivity”
android:label=”@string/app_name” >
<intent-filter>
<action android:name=”android.intent.action.MAIN” />

<category android:name=”android.intent.category.DEFAULT” />
</intent-filter>
</activity>

<activity
android:name=”.Splash”
android:label=”@string/app_name” >
<intent-filter>
<action android:name=”android.intent.action.MAIN” />

<category android:name=”android.intent.category.LAUNCHER” />
</intent-filter>
</activity>

</application>

</manifest>

Now Finally Open Values Folder and place below code in strings.xml and change app_name string value to yours in line number two

<resources>
<string name=”app_name”>Android WebView App</string>

<string name=”hello_world”>Hello world!</string>
<string name=”share”>Share</string>
<string name=”action_websearch”>Web search</string>

</resources>

Done!!!!

LEAVE A REPLY

Please enter your comment!
Please enter your name here