Solución para Chrome en Android no se activa cuando se hace clic en los vínculos
Estoy trabajando en una aplicación de Android que maneja intentos para ciertos enlaces http (s). Funciona en la mayoría de los casos, pero no para los clics en los enlaces de Chrome, debido a esta característica de error / error . En resumen, Chrome no transmite una intención para esos clics. : /
Que se puede arreglar eventualmente, pero mientras tanto, ¿alguien sabe una solución?
- Se ha producido un error al registrarse para notificaciones push.
- El botón "Añadir a la pantalla de inicio" de Android no muestra el sitio web como una aplicación web
- HTML 5 Reproducción automática Google Chrome Android No reproducción
- OnKeyPress, onKeyDown, eventos onKeyUp no disparados en Firefox / Chrome bajo Android al escribir letras
- Depurar la página web en la aplicación Chrome Android desde el escritorio localhost con el reenvío de puertos
Si yo controlaba los enlaces ellos mismos, yo podría usar mi propio esquema HTTP, por ejemplo myapp: // …, o podría usar JavaScript para hacer un clic de botón , los cuales envían la intención … pero no controlo los enlaces.
En concreto, me gustaría manejar enlaces como http://github.com/snarfed . La definición de mi actividad en AndroidManifest.xml
es la siguiente. Recibe correctamente difusiones intencionales para este tipo de clics de enlace de otras aplicaciones, pero no desde Chrome.
<activity android:name="MyApp" android:exported="true"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="http" /> <data android:scheme="https" /> <data android:host="github.com" /> </intent-filter> </activity>
- Incapaz de depurar android / chrome remotamente de ubuntu / linux
- Cómo utilizar NFC API con google chrome para android
- Cómo mostrar la barra de direcciones de nuevo después de salir de pantalla completa en Android
- Pantalla negra en cromo para video html5 de Android
- Los nuevos dispositivos de Samsung no pueden mostrar páginas web en su aplicación de SMS integrada
- HTML5 Audio: Chrome en Android no reproduce canciones automáticamente en comparación con Chrome en PC
- Problema de alineación vertical de texto en android y ios
- ¿Cómo se deben formatear las restricciones (Android) / Chrome getUserMedia ()?
Es necesario incluir el esquema, host y pathPrefix en cada punto de datos.
Ejemplo del manifiesto apropiado:
<activity android:name=".PhotostreamActivity" android:label="@string/application_name"> <!-- ... --> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="http" android:host="flickr.com" android:pathPrefix="/photos/" /> <data android:scheme="http" android:host="www.flickr.com" android:pathPrefix="/photos/" /> </intent-filter> </activity>
Este ejemplo se toma de una aplicación Romain Guy juntos y referenciados en una pregunta duplicada aquí:
Interceptar enlaces desde el navegador para abrir mi aplicación para Android
Un par de advertencias a tener en cuenta, parece que usted necesita para matar a Chrome en el fondo antes de la intención de cartografía toma efecto Y si escribe la url directamente, la aplicación no se permitirá a consumir, sólo cuando es un enlace que ofrece Chrome la acción hasta las aplicaciones.
Parece que Chrome solo activa intentos si el filtro de intenciones tiene una ruta de acceso, pathPrefix o pathPattern. Por lo tanto, para filtrar todo el dominio, he resuelto este problema mediante la adición de android:pathPattern=".*"
, Así:
<intent-filter android:priority="999"> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:host="mydomain.com" android:scheme="http" android:pathPattern=".*" /> <data android:host="www.mydomain.com" android:scheme="http" android:pathPattern=".*" /> </intent-filter>
- Android – Cómo detener y detener el temporizador
- La adición de Renderscript en el estudio de Android 1.0.1 con API @ 21 y SDKTools @ 21.1.2 causa errores de compilación