WKWebView
Çoğu uygulamada gördüğünüz internet içeriklerini WKWebView elementi ile uygulamalarınıza ekleyebilirsiniz.
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.
import WebKit
Ayrıca, uygulamamızda WKWebView elementini tanımlayabilmemiz için “WKUIDelegate” sınıfını çağırmalıyız.
class ViewController: UIViewController, WKUIDelegate {
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.
var webView: WKWebView!
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 Controller” elementinin üzerinde olduğunu tanımlamalıyız. Bu işlemleri “loadView” fonksiyonunda yapabiliriz.
override func loadView() {
}
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 “WKWebViewConfiguration” değerine ihtiyacımız olduğundan “WebView” elementimizi tanımlamadan önce onu tanımlayalım.
let webConfiguration = WKWebViewConfiguration()
Şimdi de “WebView” elementimizi tanımlayalım.
webView = WKWebView(frame: .zero, configuration: webConfiguration)
Böylece elementimiz artık gerçekten var. Şimdi sıra, bu var olan elementi “ViewController” elementinde göstermeye geldi. Bunun için aşağıdaki satırları yazalım.
webView.uiDelegate = self
view = webView
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.
let url = URL(string: "https://turkishkit.com")
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.
let request = URLRequest(url: url!)
Son olarak, bu isteği WKWebView elementimize yollamamız (yüklememiz) gerekiyor. Bunu da aşağıdaki kod satırıyla yapabiliriz.
webView.load(request)
Artık projemizi çalıştırabiliriz! 🎃
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.