Cromo Personalizado TabsEdit PagePage História

Visão

Chrome guias personalizadas dar apps mais controle sobre sua experiência na web, e fazer transições entre o nativo e o conteúdo da web mais perfeita, sem ter que recorrer a um modo de exibição da web.

Chrome guias personalizadas permitir que um aplicativo para personalizar a forma como o Chrome olha e sente. Um aplicativo pode mudar coisas como:

  • Toolbar color
  • Enter and exit animations
  • Add custom actions to the Chrome toolbar and overflow menu

Chrome custom tabs also allow the developer to pre-start Chrome and pre-fetch content for faster loading.

Veja este README para mais formas de usar as páginas personalizadas Chrome.

configuração

terá de instalar o aplicativo Chrome no seu telemóvel. Se estiver a utilizar um emulador, deve configurar os Serviços Google Play e instalar a aplicação Chrome através da Play store.

adicione a biblioteca de Suporte do Android para as páginas personalizadas do Chrome como uma dependência do seu ficheiro de compilação do gradle:

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

a biblioteca só funciona na API 16 (Jelly Bean) an acima. Se você está apoiando anterior API, você pode adicionar <uses-sdk tools:overrideLibrary="android.support.customtabs"/> ao seu manifesto para forçar a sua utilização e verifique a versão da API em tempo de execução e só usar o google Chrome guias Personalizadas se a sua >= 16

o Uso de

O mais básico de exemplo para o lançamento de um Chrome guia é através de um personalizado intenção, como mostrado abaixo:

// 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));

se não tiver o Chrome instalado, a intenção irá lançar o navegador predefinido instalado no dispositivo. O CustomTabsIntent simplesmente lança uma intenção implícita (android.intent.action.VIEW) e passa um dado extra na intenção (ou seja, android.support.customtabs.extra.SESSION e android.support.customtabs.extra.TOOLBAR_COLOR) que é ignorado se o navegador padrão não pode processar esta informação.

a configuração de outras opções

a configuração de opções adicionais Requer a utilização da classe builder. Se desejar adicionar ícones personalizados ou acções ao menu, terá de criar intentos pendentes para o fazer.

definir a cor da barra de ferramentas

se quiser definir a cor da barra de ferramentas, poderá usar o método setToolbarColor() na classe de construtor:

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

normalmente, context.getResources().getColor()) pode ser usado, mas no Android API 23 este método foi depreciado. Por esta razão, veja este guia para como incluir a biblioteca de suporte ao design para alavancar uma nova API ContextCompat.

adicionar uma acção em acções

por omissão, uma página Chrome não inclui a acção de partilha na barra de ferramentas. No entanto, poderá adicionar um por omissão à lista de itens do menu:

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

Adicionar ícones personalizados

Se você deseja adicionar um ícone específico (como o ícone de compartilhamento) para a barra de ferramentas, você precisa primeiro adicionar o ícone usando New -> Image Asset (atualmente, as Guias do google Chrome não de vetor de suporte drawables então você deve estar usando arquivos PNG como seus ícones):

Observação o arquivo que é salvo. Teremos de criar um bitmap para usar mais tarde:

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

em seguida, criar a intenção:

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

em seguida, você precisa criar uma intenção pendente (veja este clipe do YouTube para mais informações), que é usado para acordar o seu aplicativo quando o usuário clica no ícone. Este pendente intenção precisa ser passado para o Chrome Guias intenção do construtor:

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

Finalmente, precisamos passar o mapa de bits, texto, e pendente de intenção criado:

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();

Habilitar a pré-partida e pré-busca

Chrome guias personalizadas também permitem que o desenvolvedor pré-iniciar o google Chrome e pré-busca de conteúdo para um carregamento mais rápido.

Copie os seguintes ficheiros a partir de GoogleChrome exemplo git repo para o seu projecto e ajuste os nomes dos pacotes em conformidade:

  • ajuda na actividade personalizada.java
  • CustomTabsHelper.java
  • KeepAliveService.Java
  • ServiceConnection.Java
  • ServiceConnectionCallback.java

Use o seguinte método para abrir uma página personalizada cromada, se possível. Se o utilizador não tiver um navegador que suporte páginas personalizadas do Chrome, irá abrir o navegador por omissão:

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); } });

próximos passos

o exemplo de integração rápida acima irá abrir o seu Uri numa página personalizada cromada sem aquecer, pré-obter ou personalizações UI.

pode encontrar um exemplo de como se ligar ao Serviço Chrome Custom Tabs para usar o aquecimento e a pré-obtenção da amostra de ServiceConnectionActivity da equipa Google Chrome.

para mais informações sobre possíveis personalizações IU, verifique a amostra de CustomUIActivity da equipa Google Chrome.



+