Uygulamanızı özel sekmelerle entegre etmenin önerilen yolu AndroidX Browser Library'yi kullanmaktır. Ancak destek kitaplığı olmadan da özel sekme başlatabilirsiniz. Bu kılavuzda, bu hedefe nasıl ulaşılacağı hakkında genel bilgiler verilmektedir.
Destek kitaplığının tam uygulaması [GitHub][1] üzerinden edinilebilir ve başlangıç noktası olarak kullanılabilir. Ayrıca, Chromium deposunda bulunanlar Android Studio ile doğrudan kullanılamadığından hizmete bağlanmak için gereken [AIDL dosyalarını][2] da içerir.
Low Level API'yi kullanarak özel sekmeler başlatmayla ilgili temel bilgiler
// 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);
Kullanıcı Arayüzü Özelleştirmeleri Ekleme
Kullanıcı arayüzü özelleştirmeleri, ACTION_VIEW intent'ine ekstralar eklenerek dahil edilir. Kullanıcı arayüzünü özelleştirmek için kullanılan ek anahtarların tam listesini [CustomTabsIntent belgelerinde][3] bulabilirsiniz. Özel araç çubuğu rengi ekleme ile ilgili bir örneği aşağıda bulabilirsiniz:
// 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);
Özel Sekmeler hizmetine bağlanma
Özel Sekmeler hizmeti, diğer Android hizmetleriyle aynı şekilde kullanılabilir. Arayüz, AIDL ile oluşturulur ve sizin için otomatik olarak bir proxy hizmet sınıfı oluşturur.
Isınma, oturum oluşturma ve önceden getirme için proxy hizmetindeki yöntemleri kullanın:
// 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);
[1]: https://github.com/GoogleChrome/custom-tabs-client/tree/master/customtabs [2]: https://developer.android.com/guide/components/aidl.html [3]: https://developer.android.com/reference/androidx/browser/customtabs/CustomTabsIntent