Mam aktywność, która ładuje zewnętrzny adres URL do widoku WWW w mojej aplikacji. Chciałbym używać kart niestandardowych Chrome, gdy są one dostępne, ale obsługuję urządzenia, które mogą nie mieć wersji Chrome, która je obsługuje.Jak mogę sprawdzić, czy Chrome obsługuje niestandardowe karty Chrome?
W przypadku nieobsługiwania CustomTabs chciałbym użyć mojego starego kodu, ale używam CustomTabsIntent.Builder(), gdy są. Stary kod ładuje zawartość do WebView zawartego w działaniu, w którym nadal mogę zarządzać ActionBarem.
Chciałbym napisać metodę pomocnika, która powie mi, czy jest obsługiwana, ale nie jestem pewien jak. Informacje na stronie dla programistów są dość wąskie: https://developer.chrome.com/multidevice/android/customtabs
Mówi, że jeśli powiążesz pomyślnie, można bezpiecznie używać niestandardowych zakładek. Czy istnieje łatwy sposób wiązania, aby to przetestować?
Jak to zakładam:
Intent serviceIntent = new Intent("android.support.customtabs.action.CustomTabsService");
serviceIntent.setPackage("com.android.chrome");
boolean customTabsSupported = bindService(serviceIntent, new CustomTabsServiceConnection() {
@Override
public void onCustomTabsServiceConnected(final ComponentName componentName, final CustomTabsClient customTabsClient) {}
@Override
public void onServiceDisconnected(final ComponentName name) {}
},
Context.BIND_AUTO_CREATE | Context.BIND_WAIVE_PRIORITY);
if (customTabsSupported) {
// is supported
}
Czy to sprawdzi, czy karty niestandardowe Chrome są obsługiwane w innych przeglądarkach? – X09