Web Browser using WebView
In this tutorial we will create a simple web browser (with EditText to input, Button to search,
WebView to load Url).
✓Search a query(with google search engine)
✓Load a Url
✓Auto correct Url
✓Go to previous page
Step 1: Create a new project OR Open your project
Step 2: Code
AndroidManifest.xml<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.blogspot.devofandroid.myapplication"> <!--add internet permission--> <uses-permission android:name="android.permission.INTERNET"/> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity" android:theme="@style/Theme.AppCompat.Light.NoActionBar"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity"> <LinearLayout android:layout_margin="2dp" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center"> <EditText android:layout_width="0dp" android:layout_height="wrap_content" android:id="@+id/url_et" android:hint="https://" android:inputType="textWebEditText|textUri" android:singleLine="true" android:layout_weight="1" android:background="@null" android:focusable="true" /> <Button android:id="@+id/search_btn" android:text="GO" style="@style/Base.Widget.AppCompat.Button.Colored" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> <WebView android:id="@+id/web_view" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout>
MainActivity.java
package com.blogspot.devofandroid.myapplication; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.KeyEvent; import android.view.View; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.Button; import android.widget.EditText; import android.widget.ImageButton; public class MainActivity extends AppCompatActivity { WebView webView; EditText mUrlEt; Button mSearchBtn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); webView = findViewById(R.id.web_view); mUrlEt = findViewById(R.id.url_et); mSearchBtn = findViewById(R.id.search_btn); webView.setWebViewClient(new WebViewClient()); webView.getSettings().setLoadsImagesAutomatically(true); webView.getSettings().setJavaScriptEnabled(true); webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY); mSearchBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String url = mUrlEt.getText().toString().trim(); if (!url.contains(".")){ url= "https://www.google.com/search?q="+url; webView.loadUrl(url); } if (url.startsWith("https://") || url.startsWith("https:/")){ webView.loadUrl(url); } else { url ="https://"+url; mUrlEt.setText(url); webView.loadUrl(url); } } }); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // Check if the key event was the Back button and if there's history if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) { webView.goBack(); return true; } // If it wasn't the Back key or there's no web page history, bubble up to the default // system behavior (probably exit the activity) return super.onKeyDown(keyCode, event); } }
Comments
Post a Comment