2016-04-01 14 views
2

Bağlantıları açmak için uygulamanızda Chrome özel sekmeleri kullanıyoruz. Samsung S6 Edge'de sorun var. Uygulamamızdaki bağlantıyı tıkladığımızda, bu cihaz Chrome özel sekmeler yerine kendi tarayıcısını (İnternet adı verilir) açar. Geri düğmesine bastığınızda, bazen uygulamanıza geri dönmek yerine, Internet uygulamasını yığından açacaktır (bu internet uygulamasını son zamanlarda gezinmek için kullandıysanız). Son zamanlarda İnternet uygulamasını göz atmak için kullanmadıysanız, geri tuşuna basmanız uygulamanızı doğru bir şekilde açacaktır.kendi İnternet tarayıcı uygulamasını açar

cevap

5

Özel Sekmeler, Chrome'un destekleyebildiği gibi bir açık belirtimdir ve diğer tarayıcılardır.

o sözü davranışı neden şimdiki Samsung'un İnternet Tarayıcı uygulaması (4.0.10-51) üzerinde bir hata var gibi görünüyor, Having. Bir Özel Sekme açılırken Samsung IB paketini yok saymak geçici bir çözüm olacaktır. Github Demo'daki getPackageNameToUse yönteminde hangi tarayıcıların Özel Sekmeleri desteklediğini nasıl keşfedeceğinizi kontrol edebilirsiniz.

com.sec.android.app.sbrowser paket görmezden yöntemi değiştirin. Ardından, böyle özel Tab açmak için kullanmak istediğiniz paketi zorlamak:

 customTabsIntent.intent.setPackage(packageName); 
     customTabsIntent.launchUrl(activity, uri); 

Ben de senaryolar için nasıl hazırlanacağını görmek için Custom Sekmeler Best Practices üzerinde ziyaret etmenizi öneririz nerede birden fazla tarayıcıda olduğu Özel Sekmeler, sistemde yüklü destekler.

GÜNCELLEME: Samsung'un Internet Browser (4.2) en son sürümünü sabit bu sorunları vardır görünüyor. Geliştirilmiş çözüm, kurulu tarayıcının sürümünün uyumlu olup olmadığını kontrol etmek olacaktır. this StackOverflow question'daki yanıt gibi bir şey kullanılabilir. özel sekmeler için Google'ın örnek kodda

+0

'customTabsIntent.intent ** ** niyet tanımayan ** –

+0

Bu koda bakın, belki de yardımcı olur: https://github.com/GoogleChrome/custom-tabs-client/blob/master/demos/src/ ana/java/org/krom/customtabsdemos/CustomTabActivityHelper.java # L48-L64 – andreban

1

Çözüm: CustomTabsHelper.java

// Get all apps that can handle VIEW intents. 
    List<ResolveInfo> resolvedActivityList = pm.queryIntentActivities(activityIntent, 0); 
    List<String> packagesSupportingCustomTabs = new ArrayList<>(); 
    for (ResolveInfo info : resolvedActivityList) { 
     Intent serviceIntent = new Intent(); 
     serviceIntent.setAction(ACTION_CUSTOM_TABS_CONNECTION); 
     serviceIntent.setPackage(info.activityInfo.packageName); 
     if (pm.resolveService(serviceIntent, 0) != null) { 

      //If the packagename is not the samsung thing, add it to the list 
      if (! info.activityInfo.packageName.equals("com.sec.android.app.sbrowser")) { 
       packagesSupportingCustomTabs.add(info.activityInfo.packageName); 
      } 

     } 
    } 
2

Ben Samsung son telefonlarında birçok Özel Sekme müşteri ile kontrol etti. (-> Ayarlar -> İnternet Hakkında sürüm Menü seçenekleri kontrol etmek Prosedür) Böylece

Ben bu konunun Not varsayılan Tarayıcı yani Sürüm 4.2 en son sürüme sahip 7 gibi Samsung telefonlar gözlenen olmadığını bakın "com.sec.android.app.sbrowser" paketinin göz ardı edilmesi veya baypas edilme sorununun çözümü, son telefonları için gerekli değildir.

+0

böyle bir şey kullanarak doğrulanabilir Samsung paketinin sürümü: http://stackoverflow.com/questions/8988958/checking-external-app- versiyon-name-in-android – andreban

İlgili konular