17

Estoy intentando interceptar un par de enlaces diferentes con mi aplicación, y estoy teniendo problemas con los parámetros de datos del filtro de intención para hacerlo.Android Intent-Filter para la dirección http

Éstos son los 2 tipos de enlaces que quiero para interceptar

  1. http://www.domain.com/#id=abcdef123346
  2. http://www.domain.com/social/landing/abcdef123456

ya he decidido tener una actividad separada para interceptar los dos enlaces y el uso de expresiones regulares de Java para comenzar la actividad correcta. Sin embargo, me parece que no puede capturar sólo estos dos formatos sin capturar algo así como http://www.domain.com/abc123

<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="www.domain.com" 
       android:pathPattern="/#id.*" /> 
     </intent-filter> 

Esto es lo que actualmente estoy tratando de interceptar tipo 1 y por alguna razón no está funcionando.

Este intento filtro intercepta correctamente tipo 2

<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:host="domain.com" /> 
      <data android:host="www.domain.com" /> 
      <data android:pathPrefix="/share/web" /> 
      <data android:pathPrefix="/social/landing" /> 
     </intent-filter> 

Gracias,

+0

Hola @leo, quiero lograr lo mismo, solo quiero abrir mi aplicación cuando el usuario inicie el sitio móvil desde el navegador. Hice lo mismo aquí, ¿pero no sirve de nada? – Tony

Respuesta

3

creo que la cadena que pathPattern es coincidente es "/", y "#id ..." se omite porque es parte del fragmento. Si usó http://www.domain.com/id/abcdef123456 en su lugar, pathPattern podría coincidir con "/id/.*" porque es parte de la ruta.

+0

Esto es definitivamente una posibilidad, pero implica cambiar el comportamiento del servidor, esperaba que no tuviera que hacer eso. ¿Alguna otra posibilidad? – Leo

+0

No veo ninguna opción para un pathFragment. ¿Podrías atrapar todo lo que vaya a "/" y obtener el ID más tarde? – user775598

+0

Desafortunadamente si intercepto todos los enlaces que tienen una barra en ellos, evitaré que mis URL cortas se resuelvan, y no seré capaz de descubrir cuál era el objetivo real. – Leo

Cuestiones relacionadas