Android Uygulama İnternet Tarayıcısı yapma

20 Kas 2019
125
44
38
tcurdt/iProxy
Herkese merhaba Sevgili THT aliesi..
Proje internet tarayıcısı yapmak oldu.
Öncelikle webView hakkında bilginiz yoksa basit bir konu anlatımı için tıklayın.

Şimdi basit bir tarayıcı yapacağız. Öncelikle tasarımını halledelim.

Resim ve Kodlar'ı takip ediniz.

Kodlar ;

Kod:
<RelativeLayout xmlns:android="//schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#E0E0D1" >


    <LinearLayout
        android:id="@+id/iki"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/textViewURL"
            android:layout_width="50dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:paddingLeft="13dp"
            android:textColor="#000"
            android:text="URL" />

        <EditText
            android:id="@+id/URL"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:ems="10" >
        </EditText>

        <Button
            android:id="@+id/Git"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Git" />
    </LinearLayout>


    <WebView
        android:id="@+id/webV"
        android:layout_width="fill_parent"
        android:layout_height="850dp"
        android:layout_below="@id/iki" />

    <LinearLayout
        android:id="@+id/bir"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:weightSum="3"
        android:layout_below="@+id/webV"
        >

        <Button
            android:id="@+id/Geri"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Geri" />

        <Button
            android:id="@+id/Anasayfa"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Anasayfa" />

        <Button
            android:id="@+id/Ileri"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Ileri"
   />
    </LinearLayout>
</RelativeLayout>
Şimdi Java kodlarına başlayacağız :

Detaylı Resimler ;

2015-07-23_14h56_16.png


2015-07-23_14h56_26.png


2015-07-23_14h56_45.png


Yinelenen Kodlar ;

Kodlar:
Kod:
package com.example.myapplication;

import android.app.AlertDialog;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;


public class MainActivity extends ActionBarActivity {
    Button Geri,Ileri, Anasayfa, Git;
    WebView webV;
    EditText URL;
      [USER=931120]Override[/USER]

    public **** onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);
        webV = (WebView) findViewById(R.id.webV);
        webV.getSettings().setJavaScriptEnabled(true);
        webV.setWebViewClient(new MyWebViewClient());
        webV.loadUrl("//www.google.com.tr");
        URL = (EditText) findViewById(R.id.URL);

        Geri = (Button) findViewById(R.id.Geri);
        Ileri = (Button) findViewById(R.id.Ileri);
        Anasayfa = (Button) findViewById(R.id.Anasayfa);
        Git = (Button) findViewById(R.id.Git);

        Git.setOnClickListener(new View.OnClickListener() {
              [USER=931120]Override[/USER]
            public **** onClick(View arg0) {
                if (URL.getText().toString().length() > 10) {
                    Toast.makeText(
                            getApplicationContext(),
                            URL.getText().toString()
                                    + " adresi yükleniyor...",
                            Toast.LENGTH_SHORT).show();

                    if (InternetKontrol())
                        webV.loadUrl("//"+URL.getText().toString());
                    else
                        BaglantiHatasiVer();
                } else {
                    Toast.makeText(getApplicationContext(), "Geçersiz Adres",
                            Toast.LENGTH_SHORT).show();
                }
            }
        });

        Anasayfa.setOnClickListener(new View.OnClickListener() {
              [USER=931120]Override[/USER]
            public **** onClick(View arg0) {
                if (InternetKontrol())
                    webV.loadUrl("//www.google.com.tr");
                else
                    BaglantiHatasiVer();
            }
        });


        Geri.setOnClickListener(new View.OnClickListener() {
              [USER=931120]Override[/USER]
            public **** onClick(View arg0) {
                if (webV.canGoBack()) {
                    webV.goBack();
                }
            }
        });

        Ileri.setOnClickListener(new View.OnClickListener() {
              [USER=931120]Override[/USER]
            public **** onClick(View arg0) {
                if (webV.canGoForward()) {
                    webV.goForward();
                }
            }
        });

    }
    private class MyWebViewClient extends WebViewClient {
          [USER=931120]Override[/USER]
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }
    }
    public **** BaglantiHatasiVer() {
        AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
                MainActivity.this);
        alertDialogBuilder.setTitle("Sunucu Hatası");
        alertDialogBuilder.setMessage(
                "internet bağlantınızı kontrol edip tekrar deneyin")
                .setCancelable(true);
        AlertDialog alertDialog = alertDialogBuilder.create();
        alertDialog.show();
    }

    public boolean InternetKontrol() {
        ConnectivityManager manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        if (manager.getActiveNetworkInfo() != null
                && manager.getActiveNetworkInfo().isAvailable()
                && manager.getActiveNetworkInfo().isConnected()) {
            return true;
        } else {
            return false;
        }
    }
      [USER=931120]Override[/USER]
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

      [USER=931120]Override[/USER]
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}
Ve son olarak Manifest dosyasına da 2 tane izin ekliyoruz.
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

Uygulamanın Çalışması ve görseli ;

2015-07-23_14h54_55.png


Takıldığınız bir nokta olur ise cevaplayabilirim.
Başarılar dilerim..
 
Moderatör tarafında düzenlendi:

DeathWarrior01

Uzman üye
14 Ocak 2021
1,734
1,081
Evren
Merhabalar,
Öncelikle eline emeğine sağlık:).Keşke geçen konumdaki önerilerimi dikkate alsaydın daha iyi olacaktı.Önemli yerleri bir renkle belirt ki misafir kullanıcılarımızda güzel bir şekilde anlasın.Ve de THT en ön sıralara taşınsın.Tekrardan eline emeğine sağlık.

İyi forumlar...
 
20 Kas 2019
125
44
38
tcurdt/iProxy
Doğru fakat içerikte olan kodlamaları net bir şekilde görebilmek için beyaz üzerinde çalışma yapmak daha mantıklı geldi.
Tabiki dediğinizi dikkate alacağım.
Sevigilerimle..
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.