Soru & Cevap

Custom Chrome Tabs İçin Chrome Yüklü Değilse

26.02.2016 - 11:48

Merhabalar,

Uygulamamda Custom Chrome Tabs kullanarak url'leri bu şekilde görüntülemek istiyorum. Google Chrome tarayıcısı telefonda olduğu müddetçe sorun yok ama ola ki kullanıcının telefonunda Google Chrome yoksa uygulama patlıyor. Uygulamamanının kapanmaması için nasıl bir yol izlemem gerek acaba?

İlgi ve elakanız için şimdiden teşekkürler :))

Kullanıdığım kodlar aşağıdaki gibidir:

 

1. Butonun Click olayında UrlAc adında parametre olarak url alan bir metot çaığırıyorum

button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                UrlAc("https://www.google.com.tr/");
            }
        });

2. Sonrasında UrlAc() metoduma aşağıdaki kodları yazdım. Ayrıca burada ChromeYuklumu() şeklinde bir metot daha oluşturup onu çağırdım.

private void UrlAc(String url) {
        Uri webSiteUri;
        if(!url.contains("https://")&& url.contains("http://")){
            webSiteUri=Uri.parse("http://"+url);
        }else {
            webSiteUri=Uri.parse(url);
        }

        CustomTabsIntent.Builder customTabIntent=new CustomTabsIntent.Builder();
        customTabIntent.setToolbarColor(Color.parseColor("#2196F3"));
        customTabIntent.setShowTitle(true);

        if(ChromeYuklumu()) {

                customTabIntent.build().intent.setPackage("com.android.chrome");

            }else{
               Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
               startActivity(Intent.createChooser(intent, "Chose browser"));
            }
             customTabIntent.build().launchUrl(getActivity(), webSiteUri);

        }

3. Daha sonra ChromeYuklumu() metodumu çağırarark Chrome tarayıcısının yüklü olup olmadığını kontrol ediyorum. Eğer yüklü ise geriye true; değil ise false değer döndürüyor.

 private boolean ChromeYuklumu() {
        try {
            getActivity().getPackageManager().getPackageInfo("com.android.chrome",0);
            return true;
        } catch (Exception ex){
            return false;
        }
    }

 

12 Görüntülenme

0 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.