WebView, web sitenizi veya HTML dosyalarınızı Android uygulaması içinde görüntülemenizi sağlayan güçlü bir bileşendir. Bu rehberde, Kotlin kullanarak sıfırdan profesyonel bir WebView uygulaması geliştirmeyi öğreneceksiniz.
İnternet izinlerinden JavaScript ayarlarına, geri tuşu kontrolünden yerel dosya (Assets) yüklemeye kadar her detayı adım adım inceleyin. Eka Sunucu ile mobil dünyaya adım atın.
val myWebView: WebView = findViewById(R.id.webview)
myWebView.settings.javaScriptEnabled = true
myWebView.webViewClient = WebViewClient()
// Web Sitesini Yükle
myWebView.loadUrl("https://www.ekasunucu.com")
Mevcut web sitenizi uygulamaya çevirin.
İnternet olmadan çalışan HTML/CSS/JS dosyaları.
Dinamik içerikler için JS motorunu aktifleştirme.
Uygulama içinde sayfa geçmişinde gezinme.
WebView, Android'in View sınıfından türetilen ve web sayfalarını uygulamanızın bir parçası gibi göstermenize olanak tanıyan bir bileşendir. Bir tarayıcının (Chrome gibi) adres çubuğu ve navigasyon butonları olmayan hali gibidir.
Bu yöntemle, mevcut responsive (mobil uyumlu) web sitenizi "Native" bir uygulama gibi paketleyip Google Play Store'da yayınlayabilirsiniz. E-ticaret siteleri, bloglar ve kurumsal siteler için en hızlı uygulama geliştirme yöntemidir.
Android Studio projenizi oluşturduktan sonra yapmanız gereken ilk ayarlar.
// İnternet iznini mutlaka ekleyin
<manifest ...>
<uses-permission android:name="android.permission.INTERNET" />
<application
...
android:usesCleartextTraffic="true">
...
</application>
</manifest>
// Ekranı kaplayan bir WebView bileşeni
<WebView
android:id="@+id/webView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
Bu kod, WebView bileşenini ekranın tamamını kaplayacak şekilde (match_parent) yerleştirir.
MainActivity.kt dosyasında WebView'ı yapılandıralım.
import android.webkit.WebView
import android.webkit.WebViewClient
class MainActivity : AppCompatActivity() {
private lateinit var webView: WebView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// 1. XML'den WebView'ı bul
webView = findViewById(R.id.webView)
// 2. JavaScript'i Aktif Et (Çoğu site için gereklidir)
webView.settings.javaScriptEnabled = true
// 3. Linklerin uygulama içinde açılmasını sağla
// Bu satır olmazsa linkler Chrome tarayıcısında açılır!
webView.webViewClient = WebViewClient()
// 4. URL'yi Yükle
webView.loadUrl("https://www.ekasunucu.com")
}
// 5. Geri Tuşu Kontrolü
// Kullanıcı geri tuşuna bastığında uygulamadan çıkmak yerine
// bir önceki sayfaya gitmesini sağlar.
@Deprecated("Deprecated in Java")
override fun onBackPressed() {
if (webView.canGoBack()) {
webView.goBack()
} else {
super.onBackPressed()
}
}
}
Eğer uygulamanızın internet bağlantısı olmadan da çalışmasını istiyorsanız, HTML/CSS/JS dosyalarınızı projenin içine gömebilirsiniz.
src/main/assets/ klasörü oluşturun.index.html) bu klasöre atın.webView.loadUrl("file:///android_asset/index.html")
Siz hayal edin, Eka Sunucu uzman ekibi kodlasın.
Mevcut web sitenizi profesyonel bir Android uygulamasına dönüştürüyoruz.
WebView yerine tamamen cihaza özel (Native) performanslı uygulamalar.
WebView uygulamaları hakkında teknik detaylar
Eğer myWebView.webViewClient = WebViewClient() satırını eklemezseniz, Android işletim sistemi linkleri varsayılan tarayıcıda açmaya çalışır. Bu satır, linklerin uygulamanızın içinde (WebView bileşeninde) açılmasını sağlar.
Android 9 (Pie) ve üzeri sürümler varsayılan olarak HTTP siteleri engeller, sadece HTTPS'e izin verir. Eğer siteniz HTTP ise, AndroidManifest.xml dosyasına android:usesCleartextTraffic="true" satırını eklemelisiniz.
WebView varsayılan olarak dosya seçiciyi (File Chooser) desteklemez. Dosya yükleme özelliği için WebChromeClient sınıfını ve onShowFileChooser metodunu override etmeniz (özelleştirmeniz) ve gerekli izinleri (READ_EXTERNAL_STORAGE) almanız gerekir.
Evet, WebView uygulamanıza OneSignal veya Firebase Cloud Messaging (FCM) entegre ederek kullanıcılarınıza bildirim gönderebilirsiniz. Eka Sunucu'nun WebView paketinde bu özellik mevcuttur.
Kodlama ile uğraşmak istemiyor musunuz? Sitenizi 24 saat içinde profesyonel bir Android uygulamasına dönüştürüp Google Play'e yüklüyoruz.