Sayfalar

10 Şubat 2012 Cuma

Android: Uygulama İçinde Web Sayfası

Android üzerine uygulama geliştirirken, uygulamanız içinde bir web sayfası göstermek isteyebilirsiniz. Bu durumda iki durum vardır: Ya uygulamanız bir tarayıcı açıp istenen web sayfasını görüntüler, ya da istediğiniz web sayfasını herhangi ek bir araç kullanmadan direk uygulamanız içinde görüntüler. Biz ikinci yöntemi anlatacağız.


İhtiyacımız olan şeyler, web sayfasının görüntüleneceği ekran için bir adet Androidin Activity sınıfından miras alan bir Java sınıfı, ve bir layout xml'i. İsimlerine "WebActivity.java" ve "web.xml" diyoruz.

İlk iş olarak layoutumuzu yani "web.xml" i uygun şekle hazırlıyoruz.


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
   
<WebView android:id="@+id/web_engine"
             android:layout_width="fill_parent"
             android:layout_height="fill_parent"
            />
</LinearLayout>

Burada aslında ekstradan yaptığımız şey, layouta bir WebView elemanı eklemek. Elemana verdiğimiz web_engine ismindeki id yi ileride kullanacağız.

Layout ile ilgili yapacağımız herşey bu kadar. Tabi probleme göre bu değişebilir. Örneğin bir buton yerleştirerek, açılacak web sayfasının kontrolünü o butona bağlayabilirsiniz.

Şimdi geliyoruz java kısmını düzenlemeye. Burada sadece onCreate fonksiyonu içerisinde yapacağımız değişikliği anlatacağım.


public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
                setContentView(R.layout.sitelayout);
WebView engine = (WebView) findViewById(R.id.web_engine);
engine.getSettings().setJavaScriptEnabled(true);
engine.loadUrl("http://finelycodes.blogspot.com");
}

Burada da yaptığımız ekstra iş, layoutda oluşturduğumuz WebView elemanını javada kullanmak üzere hazırlamak. 


engine.getSettings().setJavaScriptEnabled(true);

Bu satır tamamıyla sizin probleminize göre değişebilir. Ben bu site görüntülenirken makinanın javascript i açmasını istediğim için bu satırı ekledim. Yarattığınız "engine" nesnesinden size uygun diğer metodları da çağırabilirsiniz.

Son olarak yapmanız gereken tabii ki manifest dosyasına Activitynizi kayıt ettirmek ve internet erişimi istemek.


                 <activity
   android:name=".WebActivity">
</activity>


               <uses-permission android:name="android.permission.INTERNET"/>


Artık uygulama içinde herhangi bir zaman bu activity çağrılırsa, istenen web adresi gösterilecektir.


3 yorum:

  1. Peki hocam aradığım şey tam olarak buydu yalnız şöyle bir sorum var. Cihaz üzerinde bulunan back tuşuna basıldığında web sayfasında geri işlemi mi yapar yoksa uygulamayı mı kapatır ?

    YanıtlaSil
    Yanıtlar
    1. Merhaba,

      Eğer ek bir işlem yapmazsanız back tuşu web sayfasında değil uygulamanın kendisinde geriye gider yani activity'i kapatmaya çalışır. Eğer web sayfasında geri gitmesini istiyorsanız back tuşunu dinlemeli, basıldığında ona göre bir işlem başlatmanız gerekir. Bununla ilgili aşağıdaki linkte bir çözüm sunulmuş.

      http://stackoverflow.com/a/6077173/1220477

      Sil
  2. peki sayfayı nasıl ekrana tam oturtturabiliriz ? yani ekran boyutuna tam oturması için ? teşekkürler..

    YanıtlaSil