WKWebView

Çoğu uygulamada gördüğünüz internet içeriklerini WKWebView elementi ile uygulamalarınıza ekleyebilirsiniz.

Can Balkaya
TurkishKit
4 min readFeb 14, 2020

--

Merhaba TurkishKit okuyucuları. 👋 Bu yazımızda sizlerle Apple’ın 2014 yılında tanıtmış olduğu WKWebView elementinin ne olduğunu öğreneceğiz. O zaman, hiç vakit kaybetmeden başlayalım!

WKWebView Elementi Nedir?

WKWebView elementi, uygulamanıza internetteki içerikleri yansıtmanızı sağlayan bir penceredir; onun sayesinde (neredeyse) istediğiniz bütün internet içeriklerini uygulamanıza yerleştirebilirsiniz, ama bunun da tabii ki bir sınırı var. Bu konunun ciddiyetini Apple’ın WWDC 2018 etkinliğinde sadece WKWebView elementiyle yapılan uygulamaları reddedeceğini söylemesinden anlayabiliriz. Yani bu element her yerde kullanılabilecek bir element değildir!

Kullanım Alanları

Genellikle WKWebView elementini gelişmiş uygulamaların ayarlar menüsünün en dip bölümlerinde görebiliriz. Hatta şu an bu yazıyı okumanızı sağlayan platform olan Medium’da bile WKWebView elementini görmek mümkün.

Sonuçta, eğer uygulamanıza acilen yeni bir “ ViewController elementi eklemeniz gerekiyorsa ve o eklemeniz gereken bölüm uygulamanızın internet sitesinde zaten bulunuyorsa neden daha fazla uğraşasınız ki?

WKWebView elementinin ne olduğunu öğrendiğimize göre, artık onu nasıl kodlayabileceğimizi öğrenebiliriz!

Hadi Kodlayalım

Uygulamamızı yapmaya, bir “Single View App” oluşturarak başlayalım.

Öncelikle, WKWebView elementimizi kodlamamız için “WebKit” kütüphanesini çağırmamız gerekiyor.

Ayrıca, uygulamamızda WKWebView elementini tanımlayabilmemiz için “WKUIDelegate” sınıfını çağırmalıyız.

Bu yazıda “Main.storyboard” sayfası üzerinde hiç bir şey yapmayacağız, onun yerine WKWebView elementimizin bütün özelliklerini kodlayarak tanımlayacağız! Bunun için de elementimizi aşağıdaki şekilde tanımlamalıyız.

Elementimizde bir içerik gösterebilmek için önce o elementi tam olarak var etmemiz gerekiyor. Bunun için elementimizin büyüklüğünü, konumunu ve bu elementimizin “View Controllerelementinin üzerinde olduğunu tanımlamalıyız. Bu işlemleri “loadView” fonksiyonunda yapabiliriz.

loadView: View denetleyicisi hiç bir elementten geri dönüş alamadığı durumlarda çalışır ve içine yazılan elementleri görünür kılar.

Elementimizi tanımlayabilmemiz için bir “WKWebViewConfigurationdeğerine ihtiyacımız olduğundan “WebView elementimizi tanımlamadan önce onu tanımlayalım.

Şimdi de “WebViewelementimizi tanımlayalım.

Böylece elementimiz artık gerçekten var. Şimdi sıra, bu var olan elementi “ViewControllerelementinde göstermeye geldi. Bunun için aşağıdaki satırları yazalım.

Artık tek yapmamız gereken elementimizin içine bir internet içeriği atamak. Eğer WKWebView elementimizde bir internet içeriği göstermek istiyorsak, bir bağlantıya ihtiyacımız var öyle değil mi? İşte aşağıda görmüş olduğunuz kod bloğuyla bir bağlantı oluşturmuş oluyoruz.

Ne yazık ki sadece bir URL yaratarak işimiz bitmiyor. Ayrıca bir istek oluşturmamız gerekiyor. O isteği de aşağıdaki kod satırı ile oluşturabiliriz.

Son olarak, bu isteği WKWebView elementimize yollamamız (yüklememiz) gerekiyor. Bunu da aşağıdaki kod satırıyla yapabiliriz.

Artık projemizi çalıştırabiliriz! 🎃

Uygulamamızın son hali! 🎉

Uygulamamız burada tamamlandı diyebiliriz, ama bazı internet sitelerinin bağlantılarını “https” yerine “http” olarak yazdığımızda WKWebView elementimizde o internet sitelerini göremeyebiliriz. O yüzden, şimdi bunu nasıl çözebileceğimize bakalım!

İlk başta “Info.plist” dosyamıza gitmemiz ve sonrasında burada “App Transport Security Settings” adında bir dizi eklememiz gerekiyor.

Sonrasında bu dizinin içine “Allow Arbitrary Loads” adında yeni bir dizi daha eklememiz gerekiyor.

Son olarak, eklediğimiz dizinin “NO” değerini “YES” değerine çevirmemiz gerekiyor.

Artık farklı internet içeriklerini WebView elementimizde gösterirken sorun yaşamayacağız!

Bir yazımızın daha sonuna geldik. Bu yazımızda WKWebView elementini nasıl kullanacağımızı öğrendik. Hepinize iyi kodlamalar! ✌️

Bu yazımızda yapmış olduğumuz projemize buradan ulaşabilirsiniz:

Swift Öğrenin. Uygulama Geliştirin. Sınırların Ötesine Geçin.

Hem kod yazmaya yeni başlayanların hem de profesyonellerin rahatlıkla takip edebilecekleri 40 saatlik videolu eğitim ile Swift programlama dilini derinlemesine keşfedin. Eğitim boyunca karşılaşacağınız problemleri birebir online görüşmelerde çözün.

--

--