Chrome Vlastní TabsEdit PagePage Historie

Přehled

Chrome vlastní karty dát aplikací větší kontrolu nad jejich webových zkušenosti, a zajistit, aby se přechody mezi nativní a webové obsah, bezešvé, aniž by se museli uchýlit k WebView.

vlastní karty Chrome umožňují aplikaci přizpůsobit vzhled a pocit Chromu. Aplikace může změnit věci jako:

  • panel Nástrojů barva
  • Vstup a výstup animace
  • Přidat vlastní akce k Chrome toolbar a přetečení menu

Chrome vlastní karty také umožňují developer, aby pre-start Chrome a pre-fetch obsah pro rychlejší načítání.

viz tento README pro více způsobů, jak používat Chrome vlastní karty.

nastavení

budete muset mít v telefonu nainstalovanou aplikaci Chrome. Pokud používáte emulátor, musíte nastavit služby Google Play a nainstalovat aplikaci Chrome v Obchodě Play.

přidejte knihovnu podpory Android pro vlastní karty Chrome jako závislost na souboru sestavení gradle:

implementation 'com.android.support:customtabs:25.2.0'

knihovna funguje pouze na API 16 (Jelly Bean) výše. Pokud jste podporu předchozí API, můžete přidat <uses-sdk tools:overrideLibrary="android.support.customtabs"/> do svého manifestu, aby platnost jeho použití a zkontrolujte, zda API verzi, při běhu a stačí použít Chrome Vlastní karty, pokud je jeho >= 16

Použití

nejvíce základní příklad na spuštění Chrome na kartě je přes vlastní záměr, jak je uvedeno níže:

// Use a CustomTabsIntent.Builder to configure CustomTabsIntent.String url = "https://www.codepath.com/";CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder();// set toolbar color and/or setting custom actions before invoking build()// Once ready, call CustomTabsIntent.Builder.build() to create a CustomTabsIntentCustomTabsIntent customTabsIntent = builder.build();// and launch the desired Url with CustomTabsIntent.launchUrl()customTabsIntent.launchUrl(this, Uri.parse(url));

pokud nemáte nainstalovaný Chrome, záměr spustí výchozí prohlížeč nainstalovaný v zařízení. CustomTabsIntent jednoduše spustí implicitní záměr (android.intent.action.VIEW) a předá další data v záměru (tj. android.support.customtabs.extra.SESSION a android.support.customtabs.extra.TOOLBAR_COLOR), které budou ignorovány, pokud výchozí prohlížeč nemůže tyto informace zpracovat.

konfigurace dalších možností

konfigurace dalších možností vyžaduje použití třídy builder. Pokud chcete do nabídky přidat vlastní ikony nebo akce, budete k tomu muset vytvořit nevyřízené záměry.

Nastavení panelu Nástrojů barva

Pokud chcete nastavit panel nástrojů pro barvu, můžete použít setToolbarColor() metoda v builder třídy:

CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder();// set toolbar colorbuilder.setToolbarColor(ContextCompat.getColor(this, R.color.colorAccent));

Normálně, context.getResources().getColor()) může být použit, ale v Android API 23 tato metoda se již nepoužívá. Z tohoto důvodu naleznete v této příručce, Jak zahrnout knihovnu podpory návrhu a využít nové API ContextCompat.

přidání akce Sdílení

ve výchozím nastavení karta Chrome neobsahuje akci sdílení na panelu nástrojů. Do seznamu položek nabídky však můžete přidat výchozí položku:

CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder();// add share action to menu listbuilder.addDefaultShareMenuItem();

Přidání vlastní ikony

Pokud chcete přidat konkrétní ikonu (například na ikonu sdílení) na panelu nástrojů, musíte nejprve by se mělo přidat ikonu pomocí New -> Image Asset (v současné době, Chrome Karty nepodporují vektor obrazovkami, takže byste měli být pomocí PNG soubory jako ikony):

Poznámka: soubor, který je uložen. Budeme muset vytvořit bitmapu pro pozdější použití:

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_action_name);

dále vytvořte záměr:

Intent intent = new Intent(Intent.ACTION_SEND);intent.setType("text/plain");intent.putExtra(Intent.EXTRA_TEXT, "http://www.codepath.com");

Dále musíte vytvořit nevyřízený záměr (viz tento klip YouTube pro více informací), který se používá k probuzení aplikace, když uživatel klikne na ikonu. Tento čekající záměr musí být předány Chrome Záložky záměr tvůrce:

int requestCode = 100;PendingIntent pendingIntent = PendingIntent.getActivity(this, requestCode, intent, PendingIntent.FLAG_UPDATE_CURRENT);

a Konečně, musíme projít bitmap, text, a do doby, než záměr vytvořil:

CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder();// Map the bitmap, text, and pending intent to this icon// Set tint to be true so it matches the toolbar colorbuilder.setActionButton(bitmap, "Share Link", pendingIntent, true);CustomTabsIntent customTabsIntent = builder.build();

Povolit pre-spouštění a pre-fetching

Chrome vlastní karty také umožňují developer, aby pre-start Chrome a pre-fetch obsah pro rychlejší načítání.

zkopírujte následující soubory z GoogleChrome ukázkové repo git do vašeho projektu a podle toho upravte názvy balíčků:

  • CustomTabActivityHelper.java
  • CustomTabsHelper.java
  • KeepAliveService.java
  • ServiceConnection.java
  • ServiceConnectionCallback.java

pokud je to možné, otevřete vlastní kartu Chrome pomocí následující metody. Pokud uživatel nemá prohlížeč, který podporuje vlastní karty Chrome, otevře výchozí prohlížeč:

CustomTabsIntent customTabsIntent = new CustomTabsIntent.Builder().build();CustomTabActivityHelper.openCustomTab(this, customTabsIntent, uri, new CustomTabActivityHelper.CustomTabFallback() { @Override public void openUri(Activity activity, Uri uri) { Intent intent = new Intent(Intent.ACTION_VIEW, uri); activity.startActivity(intent); } });

Další Kroky

výše rychlé integraci příklad otevře své Uri na Chrome Custom Tab bez rozcvičení, pre-fetching nebo UI přizpůsobení.

můžete najít příklad o tom, jak se připojit k Chrome Vlastní Karty služby použít teplé-up a pre-fetching na ServiceConnectionActivity vzorek z Týmu Google Chrome.

další informace o možných úpravách uživatelského rozhraní naleznete v ukázce CustomUIActivity z týmu Google Chrome.



+