android - programacion - Biblioteca de soporte de pestañas personalizadas
manual de programacion android pdf (3)
Hay un proyecto de demostración en github , mencionado por @NikolaDespotoski, que puede ser parcialmente reutilizable.
La solución se basa en este artículo .
Añadir proyecto compartido a su proyecto. Compartido es un nombre de proyecto (no sé por qué Google no lo agregó a la biblioteca
customtabs
). enlace al proyecto compartidoCopie el Asistente de actividades del proyecto de demostración a su proyecto y coloque el paquete correcto. CustomTabActivityHelper
Para obtener previamente la url, use
CustomTabActivityHelper#mayLaunchUrl
métodoCustomTabActivityHelper#mayLaunchUrl
(si es necesario) yCustomTabActivityHelper#openCustomTab
para abrir la pestaña personalizada de Chrome.
Por ejemplo, abrir pestaña personalizada:
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);
startActivity(intent);
}
});
La precarga de url es más complicada. Puedes ver esta demo para una mejor comprensión.
Recientemente se agregó esta biblioteca de soporte, pero no pude encontrar ningún ejemplo.
¿Cuál es el propósito de esta biblioteca?
¿Podrías publicar algún ejemplo usando esta biblioteca?
Prueba esto:
dependencia de gradle
dependencies {
...
compile ''com.android.support:customtabs:25.1.0''
}
Código:
Uri uri = Uri.parse("https://github.com/mzelzoghbi");
// create an intent builder
CustomTabsIntent.Builder intentBuilder = new CustomTabsIntent.Builder();
// Begin customizing
// set toolbar colors
intentBuilder.setToolbarColor(ContextCompat.getColor(this, R.color.colorPrimary));
intentBuilder.setSecondaryToolbarColor(ContextCompat.getColor(this, R.color.colorPrimaryDark));
// build custom tabs intent
CustomTabsIntent customTabsIntent = intentBuilder.build();
// launch the url
customTabsIntent.launchUrl(activity, uri);
CustomTabs
se utiliza para abrir enlaces en un navegador que admite CustomTabs
. La apertura más probable se realiza en Chrome, por lo que CustomTabs
forma parte de la plataforma de cromo.
El objetivo es evitar la implementación de WebViews en su aplicación y, sin embargo, brindarle la opción de diseñar las pestañas de Chrome reales, como el color de la barra de herramientas, el título, varias transiciones de salida / entrada, agregar botones de acción y menús. CustomTabs
permitirá que su aplicación se una al servicio de Chrome y hará que Chrome funcione como parte de su aplicación. Un estilo que le dará la sensación de que el recurso web abierto forma parte de su aplicación.
Además del estilo, CustomTabs le brindará capacidades web cromadas completas que probablemente no podrían lograrse con WebView
estándar.
Aquí están las demos , que son sencillas.
Editar:
Un fragmento de mi aplicación que es la versión "simplificada" de la demostración de Google, que carece de un mecanismo alternativo, por ahora.
El uso del ayudante es el siguiente:
- Inicialízalo cuando tu actividad esté viva.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_preview);
mCustomTabHelper = new SimpleCustomChromeTabsHelper(this);
2. Cuando la instancia está viva y tenemos una URL lista para ser abierta, podemos llamar a:
}
mCustomTabHelper.prepareUrl(mProduct.getRedirectUrl());
Lo que se vinculará al servicio de Chrome, si no lo hizo anteriormente, o simplemente notificará al servicio de Chrome que podríamos abrir ese enlace en el futuro. CustomTabSession
se puede utilizar para abrir o preparar varias URL.
Abre la url
mCustomTabHelper.openUrl(mProduct.getRedirectUrl());
El método sobrecargado de openUrl
está utilizando una especie de generador de opciones de interfaz de openUrl
que es una réplica del CustomTabIntent.Builder
, pero CustomTabsSession
argumento CustomTabsSession
para que el asistente más adelante compile el CustomTabIntent
internamente.
Estoy ejecutando la versión de Chrome Dev a lo largo de una estable. Si elijo el estable, no puedo usar CustomTabs
en absoluto. Como consejos de Google, CustomTabs solo funcionará en Chrome 45 y versiones beta de Chrome.
Demostración de mi aplicación: https://youtu.be/fnIZwuJXjHI
Editar : Post