Menggunakan API level rendah Tab Khusus

Cara yang disarankan untuk mengintegrasikan aplikasi Anda dengan Tab Khusus adalah dengan menggunakan Library Browser AndroidX, tetapi Anda juga dapat memulai Tab Khusus tanpa support library. Panduan ini memberikan ringkasan tentang cara melakukannya.

Implementasi lengkap Support Library tersedia di GitHub dan dapat digunakan sebagai titik awal. Library ini juga berisi file AIDL yang diperlukan untuk terhubung ke layanan, karena file yang ada dalam repositori Chromium tidak dapat digunakan secara langsung dengan Android Studio.

Dasar-Dasar untuk Meluncurkan Tab Khusus menggunakan API Tingkat Rendah

// Using a VIEW intent for compatibility with any other browsers on device.
// Caller should not be setting FLAG_ACTIVITY_NEW_TASK or 
// FLAG_ACTIVITY_NEW_DOCUMENT. 
String url = ¨https://paul.kinlan.me/¨;
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); 
//  Must have. Extra used to match the session. Its value is an IBinder passed
//  whilst creating a news session. See newSession() below. Even if the service is not 
//  used and there is no valid session id to be provided, this extra has to be present 
//  with a null value to launch a custom tab.

private static final String EXTRA_CUSTOM_TABS_SESSION = "android.support.customtabs.extra.SESSION";
Bundle extras = new Bundle;
extras.putBinder(EXTRA_CUSTOM_TABS_SESSION, 
   sessionICustomTabsCallback.asBinder() /* Set to null for no session */);
intent.putExtras(extras);

Menambahkan Penyesuaian UI

Penyesuaian UI disertakan dengan menambahkan Tambahan ke Intent ACTION_VIEW. Daftar lengkap tombol tambahan yang digunakan untuk menyesuaikan UI dapat ditemukan di dokumen CustomTabsIntent. Contoh cara menambahkan warna toolbar kustom adalah sebagai berikut:

// Extra that changes the background color for the address bar. colorInt is an int
// that specifies a Color.

private static final String EXTRA_CUSTOM_TABS_TOOLBAR_COLOR = "android.support.customtabs.extra.TOOLBAR_COLOR";
intent.putExtra(EXTRA_CUSTOM_TABS_TOOLBAR_COLOR, colorInt);

Menghubungkan ke layanan Custom Tabs

Layanan Custom Tabs dapat digunakan dengan cara yang sama seperti Layanan Android lainnya. Antarmuka dibuat dengan AIDL dan otomatis membuat class layanan proxy untuk Anda.

Gunakan metode pada layanan proxy untuk melakukan pemanasan, membuat sesi, dan melakukan pra-pengambilan:

// Package name for the Chrome channel the client wants to connect to. This
// depends on the channel name.
// Stable = com.android.chrome
// Beta = com.chrome.beta
// Dev = com.chrome.dev
public static final String CUSTOM_TAB_PACKAGE_NAME = "com.chrome.dev";  // Change when in stable

// Action to add to the service intent. This action can be used as a way 
// generically pick apps that handle custom tabs for both activity and service 
// side implementations.
public static final String ACTION_CUSTOM_TABS_CONNECTION =
       "android.support.customtabs.action.CustomTabsService";
Intent serviceIntent = new Intent(ACTION_CUSTOM_TABS_CONNECTION);

serviceIntent.setPackage(CUSTOM_TAB_PACKAGE_NAME);
context.bindService(serviceIntent, mServiceConnection,
                    Context.BIND_AUTO_CREATE | Context.BIND_WAIVE_PRIORITY);