Bu serimizde satırlarca kod yazmadan mobil destekli web sitenizi kolaylıkla bir mobil uygulamaya nasıl dönüştürebileceğimizi göreceğiz.
WebView, uygulamamız içindeki bağlantıları, siteleri ve diğer web içeriklerini uygulama içerisinde görüntülememize olanak sağlayan bir elementtir. Bu elementin kullanımı oldukça basittir. Şimdi madde madde projemizi oluşturmaya başlayalım.
1)Android Studio’muzda yeni bir Kotlin projesi oluşturup empty activity seçeneğini seçelim.
2) Oluşturduğumuz projede xml kısmına gidip WebView elementimizi oluşturalım.
<WebView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/mwebview"
/>
3) Elementimizi aktivite içinde View Binding kullanarak görüntüleyeceğiz bunun için projemize binding tanımlamalarımızı yapmamız gerekiyor. Bunun için build.gradle kısmına gidip
android {
...
buildFeatures {
viewBinding = true
}
}
kodu ekleyip daha sonra sağ üst köşeden “Sync now” diyip kodumuzun senkronizasyonunu sağlıyoruz.
4) Daha sonra aktivitimize geri dönüp
private lateinit var binding: ActivityMainBinding
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
val view = binding.root
setContentView(view)
...
}
}
son tanımlamalarımızı da gerçekleştiriyoruz. Burda dikkat etmemiz gereken nokta aktivite ismimiz. Aktivite ismimiz ne ise binding tanımlamamızı ona göre yapmak zorundayız. Benim MainActivity olduğu için ActivityMainBinding şeklinde yaptım.
5) Artık binding üzerinden aktivitemizde tüm görünümlerimize rahatlıkla ulaşabiliriz. Şimdi görünümümüzü çağıralım ve gerekli kodlamaları yapalım.
binding.mwebview.loadUrl("https://site Adınız/")
val websetting= binding.mwebview.settings
//webview ayarlarımızı kullanabilmemiz için
websetting.builtInZoomControls=true
//örneğin uygulamamıza zoom özelliği eklemek istiyorsak kullanabiliriz.
websetting.javaScriptEnabled= true
//Sayfamızda JS kodları varsa bu metodu etkinleştirmemiz gerekiyor. Yoksa JS kodlarımız çalışmayacaktır.
binding.mwebview.webViewClient= WebViewClient()
// Bu sınıf sayfanızın yüklenmesi sürecini yönetmenize olanak tanır.
6) Uygulamamızda sayfalar arası gezinirken geri gitmek istediğimizde uygulamanın dışına çıkmak yerine bir önceki sayfaya dönmemizi sağlayacak olan metodlarımızı ekleyelim.
canGoBack daha önce sayfa ziyaret edip etmediğimizi sorgular eğer var ise goBack metoduyla geri dönüş işlemimizi gerçekleştirir.
7) Son olarak bu verilerimizi internet üzerinden çekeceğimiz için kullanıcıdan internet izni almamız gerekiyor. Bunun için Android Manifest dosyamızın içerisine
<uses-permission android:name="android.permission.INTERNET" />
iznini ekleyip uygulamamızı hazır hale getiriyoruz.
!!Android: Cleartext HTTP traffic not permitted hatası !!
Tüm bu işlemler sonucunda Android: Cleartext HTTP traffic not permitted hatası alıyorsanız Android Manifest dosyamızın altında
<application
android:usesCleartextTraffic="true">
işlemini gerçekleştirmek sorununuzu çözecektir.