Webview

Webview, web sitelerinin içeriklerini native olarak uygulamamız içerisinde göstermemizi sağlamaktadır. Webview ile browserda yaptığımız birçok işlemi yapabilmekteyiz. Örneklerle göstermeye çalışacağız.

Basit Webview Kullanımı

Basit bir örnek yapalım. Örneğimizde Webview bileşenine kaynak adres olarak www.mobilkodakademi.com verelim. Ekranda da her yerden 10 boşluk bırakalım.

Webview kullanımı

IOS Webview HTTP Hatası

Burada önemli bir noktaya geliyoruz. IOS cihazlarda Webview bileşeni kullandığımızda gösterilecek olan site HTTP ise IOS cihazlarda başarılı bir sonuç alamayacağız. Yukarıdaki kodu IOS emulatorde çalıştırdığımızda aşağıdaki hatayı alacağız.

Webview Http hatası (ios)

Hatanın sebebi ios cihazlarda HTTP sayfaları güvenilir bulunmamaktadır. Bu nedenle HTTP sayfalarının gösterilmesi engellenmektedir. Engellemeyi kaldırmak için göstermek istediğimiz HTTP sayfalarını Xcode üzerinden Info.plist dosyasında belirtmemiz gerekmektedir. Info.plist dosyasını açıyoruz. App Transport Security Settings -> Exception Domains içerisine localhost için localhost, herhangi bir HTTP sayfası için onun adını giriyoruz. Daha sonra girdiğimiz sitenin altına ilk olarak  NSTemporaryExceptionAllowsInsecureHTTPLoads parametresini ekliyoruz. Eklediğimiz parametrenin yan tarafına(value) true giriyoruz.  Ikinci olarak da NSExceptionAllowsInsecureHTTPLoads parametresini ekleyip yan tarafa YES giriyoruz. Uygulamayı Xcode üzerinden build ediyoruz ve artık HTTP sayfamızı da gösterebiliriz. Aşağıdaki örnekte sadece localhost eklenmiştir.

Xcode -> Info.plist -> App Transport Security Settings-> Exception Domains
IOS Webview HTTP çözümü

Webview Sık Kullanılan Parametreler

Webview bileşeninin birçok parametresi bulunmaktadır. Bunlardan en sık kullanılanlardan birkaçını açıklayacağız.

onNavigationStateChange (fonksiyon)

Webview yüklemesi başladığında ya da bittiğinde tetiklenmektedir.

scalesPageToFit (bool)

Web içeriğinin sayfada orantılı olarak gösterilmesini sağlar. Default olarak true gelmektedir.

javaScriptEnabled (bool)

JavaScript enable/disable yapılması için kullanılır. IOS için bu değer default olarak true gelmektedir. Android için ise bunun belirtilmesi gerekmektedir.

userAgent (string)

Webview bileşenine user agent bilgileri verilebilmesi için kullanılmaktadır. Android için kullanılabilir.

dataDetectorTypes

Web site içeriğinde url, telefon numarası, takvim, adres gibi parametrelerin varlığını belirtmek için kullanılır. Default olarak telefon numarasını tespite yönelik çalışır. Diğer parametreler için;

  • phoneNumber
  • link
  • address
  • calendarEvent
  • none
  • all

Yalnıza IOS cihazlar için kullanılabilir.

scrollEnabled (bool)

Webview bileşeninde aşağı yukarı (scroll) yapılıp yapılmayacağını belirtmek için kullanılır. Default olarak true gelir.

Webview Içerisinde Geri Tuşu Kullanmak (Önceki Sayfaya Dönmek)

Webview içerisinde gösterilen sayfadan başka sayfalara gidebiliriz. Peki bir önceki sayfaya nasıl döneceğiz? Bunun için iki parametre önem arz etmektedir. Bunlardan bir tanesi onNavigationStateChange, diğeri ise ref.

Şimdi yukarıdaki parametreleri de içeren biraz daha kompleks ve geri gitme tuşu da olan bir Webview örneği yapalım.

Parametreler
State Içerisindeki Parametreler

State içerisindeki parametreleri kısaca açıklayacak olursak;

url: Webview bileşeninin göstereceği web sitesi

status: Web sitesi açıldığında başlık bilgisi.

backButtonEnabled: Geri gitme tuşunun aktif ya da deaktif olması.

forwardButtonEnabled: Ileri gitme tuşunun aktif ya da deaktif olması.

loading: Web sitesinin yüklenip yüklenmediğini ifade eder.

Render Içeriği
Kullanılan Fonksiyonlar
Webview Içerisinde Geri Gitme Tuşu

Teşekkürler.