Android cihazlarda, bir web sayfasını açmanın birden fazla yolu bulunmaktadır. Bu yöntemlerin yerine daha yeni, hızlı, işlevselliği fazla olan Chrome tarayıcısının en son sürümü ile “Custom Tabs” adında yeni bir özellik geldi. Bu makalemde Chrome Custom Tabs kullanımı örnekleyen bir proje oluşturacağım.
Android uygulama geliştiricilerinin bildiği üzere, kullanıcıya bir web sitesini göstermek için uzun zamandır, bilindik 2 yol bulunmaktadır.Ya kullanıcılar direkt tarayıcı açıp, url’yi kullanarak siteyi açarlar ya da Android uygulama üzerinden Webview arayüz elemanını kullanarak siteyi kullanıcıya gösterirler.
Her iki seçenek için de mevcut ortak sorun: Tarayıcıyı ya da Webview üzerinden web sitesini çalıştırdığınızda sayfa yavaş açılır ve bunlar özelleştirilemeyen yapıya sahiptir.
Fakat, Chrome Custom Tabs özelliği sayesinde Android uygulamalarından web sayfalarına geçiş daha hızlı ve sorunsuz bir şekilde yapabiliyor. Chrome custom tabs ‘ın diğer önemli özeliği ise; Android uygulamanızın Chrome tarayıcısı gibi görünmesini sağlayarak, özelleştirme yapabilmeniz. Chrome custom tabs kullanarak uygulamada değiştirebileceğiniz özellikler şunlardır:
- Toolbar rengi
- Giriş ve çıkış animasyonları
- Chrome toolbar ve overflow menu’ye custom actions ekleme
Şimdi, Chrome custom tabs özeliğini kullanarak bir web sitesini açtığımızda, bize ne kadar hız ve zaman kazandırdığını gösteren örnek resmimize bakalım.
Aralarındaki hız farkının sizi de şaşırttığını duyar gibiyim.:)
Örnek projemizi kodlayarak bu yapıyı nasıl kullanabileceğimize bakalım. Öncelikle, Android Studio Ide ile oluşturduğum projemin app dizini altındaki build.gradle dosyasını açıyoruz. Dependencies kod bloklarının arasına aşağıdaki kodları yerleştirerek Custom Tabs kütüphanesini yüklüyoruz.
compile 'com.android.support:customtabs:23.0.0+'
MainActivity.java sınıfımızın kodları:
import android.app.Activity; import android.net.Uri; import android.support.customtabs.CustomTabsIntent; import android.os.Bundle; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Uri uri = Uri.parse("https://developer.chrome.com"); CustomTabsIntent customTabsIntent = new CustomTabsIntent.Builder(null).build(); customTabsIntent.launchUrl(this,uri); } }
Böylelikle temel olarak, Chrome custom tabs özeliğini basit bir şekilde anlatmış oldum.Daha ayrıntılı bilgi edinmek isterseniz, Developer Chrome sitesini inceleyebilirsiniz.
Kaynaklar:
1- https://developer.chrome.com/multidevice/android/customtabs
2- http://android-developers.blogspot.com.tr/2015/09/chrome-custom-tabs-smooth-transition.html
Cok guzel bir yazi olmus tebrik ederim. Boylesine guncel bir konuyu islediginiz icin tebrikler.
Bir sey hatirlatmakta fayda gordum. Bahsedilen hizlandirma onceden sayfayi hazirlamasi icin Chrome’a bilgi gondermek ile oluyor. Bunun icin ekstra API ler mevcut.
Yazinin sonunda verilen kod parcasi ile bu hiz farkina ulasilamiyor. Site normal bir sekilde aciliyor.
Ama hizdan daha cok benim aslinda cok begendigim ozellik, Custom Tabs seklinde acilan sayfada kullanici login bilgileri cookie lerinin hatirlaniyor olmasi ve sayfanin sizin uygulamaniz icinde ve uygulama renkleri ile aciliyor olmasi.
böyle bir hız farkı olması gerçekten çok şaşırtıcı. Teşekkürler
Teşekkür ederim
Mobiltakipci.net
diye bir sitem var bu costumtab seceneği ile kullandıgımda
misal facebook beğeni scripti kullanıyorum
ve normal olarak webde kullandığımda
token al butonuna bastıgımda source diye bir google kodu ile kopyalama yaptirip giriş yaptırıyorum
fakat androidde bunu yaptıramıyorum
sebebi ne olabilir acaba?
extra bir kodmu kullanmak gerekiyor
yani şöyle söyleyim
token al diiye bir buton var buna bastığımda facebook dan token alıp
hafızaya kopyalamasını istiyorum mesela butona bastığımda 2 saniye bekleticek
hafızaya kopyalıycak ve
aşağıda bir textwiew olcak
onun icine yapiştircak
giriş yap dediğimde panel gelcek
nasıl yapabiliriz?