Firebase Deep-link abrir juego de la tienda incluso cuando la aplicación está instalada

Estoy desarrollando una aplicación para Android.

Al hacer clic en un botón, se genera un enlace profundo y se comparte con los amigos.

El problema es que al hacer clic en ese vínculo profundo compartido, la tienda de juegos se abrirá incluso cuando la aplicación esté instalada.

Seguí esta documentación.

Aquí está el intent-filter :

  <!-- [START link_intent_filter] --> <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:host="example.com" android:scheme="http"/> <data android:host="example.com" android:scheme="https"/> </intent-filter> <!-- [END link_intent_filter] --> 

Aquí es cómo estoy creando la url (manualmente):

  Uri BASE_URI = Uri.parse("https://domainname.com/"); packageName = getBaseContext().getPackageName(); APP_URI = BASE_URI.buildUpon().path(requestID.getText().toString().trim()) .appendQueryParameter("query1", query1.getText().toString()) .appendQueryParameter("query2", query2.getText().toString()) .appendQueryParameter("query3", query3.getText().toString()).build(); try { String encodedUri = URLEncoder.encode(APP_URI.toString(), "UTF-8"); deepLink = Uri.parse("https://myappcode.app.goo.gl/?link="+encodedUri+"&apn="+holder.packageName+"&amv="+16+"&ad="+0); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } 

Aquí está el deep-link / url recibido: http://domainname.com/-KcldzAeJHrPS5tnfxTk?query1=query1&query2=query2&query3=query3

¿Qué podría estar mal aquí?

Hay al menos tres cosas que podrían estar equivocadas:

La forma en que se está abriendo la url: vi problema similar al escribir la url a la ventana del navegador en el dispositivo Android. Al agregar el enlace a un correo electrónico y al hacer clic en él, se abrió la aplicación. Usted escribe "haga clic" por lo que tal vez este no es el problema.

Su url y su aplicación / manifiesto no coinciden: No ha agregado el controlador de intenciones adecuado para el protocolo o el host para corregir el lugar en su manifiesto o su url no coincide con lo que ha agregado. O apn dado en la URL no coincide con el nombre del paquete de aplicaciones. En base a la pregunta en el estado actual, el host no coincide.

No estás compartiendo la url deeplink, sino una url normal: Si esperas que la url compartida abra una aplicación preinstalada, tus amigos tendrán que hacer clic (en un correo electrónico o similar) en la url completa deeplink, que entonces dirige el enlace a (Si la aplicación no está instalada) o abre la aplicación (si se implementa correctamente). La url normal se acaba de abrir en el navegador. De acuerdo con el estado actual de la pregunta, este podría ser el caso.

Si la fijación de lo anterior no funciona: Intente agregar un enlace específico de Android a su url, algo así:

 https://<myappcode>.app.goo.gl/?link=http://domainname.com&apn=com.doman.app&amv=16&ad=0&al=myscheme://any-string-you-choose 

Después de lo cual su filtro de intenciones debe ser algo como esto:

  <!-- [START link_intent_filter] --> <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:host="any-string-you-choose" android:scheme="myscheme"/> </intent-filter> <!-- [END link_intent_filter] --> 

Yo prefiero esta manera ya que es un poco más flexible en comparación con el uso de sólo enlace. Naturalmente, el nombre del paquete y otras cosas deben ser correctos también cuando se utiliza este método. Android enlace es url para ser abierto sólo en la aplicación android, un poco poco documentado, comprobarlo desde aquí (el ejemplo). También mi respuesta a otra pregunta da algunos ejemplos sobre cómo usarlo.

  • Filtro de intenciones "Privado" solo para uso de autoapp
  • Interceptar la intención de ACTION_CALL en HTC sense
  • Filtro de intenciones sólo para archivos
  • ¿Cómo registrar el intentfilter personalizado para transmitir el receptor en el archivo de manifiesto?
  • Propiedades de difusión para el bluetooth, wifi y el modo de timbre
  • ¿Cuáles son las formas alternativas de lanzar mi aplicación?
  • IntentService no se está llamando
  • Las pestañas personalizadas de Chrome de Android / la API web de Fitbit no se redireccionarán si la aplicación ya está autorizada. (OAuth2.0)
  • Cómo recibir un archivo usando NFC (Android Beam) en Android
  • Abrir mi aplicación para un determinado archivo y extensión de URL - intento-filtro no funciona como se pretende
  • ¿Por qué Filtros de Intención de Etiqueta?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.