私は、アプリケーション内のWebビューに外部URLを読み込むアクティビティを持っています。 Chromeのカスタムタブは使用できるようにしたいが、サポートしているChromeのバージョンがない可能性のあるデバイスをサポートしています。ChromeでChromeのカスタムタブがサポートされているかどうかを確認するにはどうすればよいですか?
CustomTabsがサポートされていない場合は、以前のコードを使用したい場合はCustomTabsIntent.Builder()を使用してください。古いコードは、ActionBarをまだ管理できるActivityに含まれるWebViewにコンテンツを読み込みます。
私はそれがサポートされているかどうかを教えてくれるヘルパーメソッドを書いてみたいと思いますが、わかりません。開発者ページの情報はかなりスリムです: https://developer.chrome.com/multidevice/android/customtabs
あなたが成功すると、カスタムタブを安全に使うことができます。これをテストするためにバインドする簡単な方法はありますか?このよう
私が想定しています
/**
* Check if Chrome CustomTabs are supported.
* Some devices don't have Chrome or it may not be
* updated to a version where custom tabs is supported.
*
* @param context the context
* @return whether custom tabs are supported
*/
public static boolean isChromeCustomTabsSupported(@NonNull final Context context) {
Intent serviceIntent = new Intent("android.support.customtabs.action.CustomTabsService");
serviceIntent.setPackage("com.android.chrome");
CustomTabsServiceConnection serviceConnection = new CustomTabsServiceConnection() {
@Override
public void onCustomTabsServiceConnected(final ComponentName componentName, final CustomTabsClient customTabsClient) { }
@Override
public void onServiceDisconnected(final ComponentName name) { }
};
boolean customTabsSupported =
context.bindService(serviceIntent, serviceConnection, Context.BIND_AUTO_CREATE | Context.BIND_WAIVE_PRIORITY);
context.unbindService(serviceConnection);
return customTabsSupported;
}
はクロームカスタムタブの場合、このチェックは他のブラウザでサポートされていますか? – X09