android - link - url open app
¿Cómo abrir una aplicación instalada desde una URL de correo electrónico en Android? (4)
Esta pregunta ya tiene una respuesta aquí:
Quiero abrir mi aplicación desde una URL de correo electrónico, básicamente como el ejemplo que se muestra a continuación para Twitter.com .
Email con enlace:
Selección para abrir aplicación o navegador:
Después de hacer clic en la opción de aplicación, se abre la aplicación de Twitter:
Probé el siguiente código, pero no funciona:
<intent-filter>
<action android:name="android.intent.action.VIEW"></action>
<category android:name="android.intent.category.DEFAULT"></category>
<category android:name="android.intent.category.BROWSABLE"></category>
<data android:host="www.twitter.com" android:scheme="http"></data>
</intent-filter>
Si alguien tiene una respuesta adecuada, escriba algunos ejemplos aquí.
Ejemplo: Su url será algo así como https://roadies.com y usted tiene el filtro de intención en el manifiesto como se muestra a continuación.
android:name="com.droid.MainActivity"
android:label="@string/app_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:host="roadies.com"
android:scheme="https" />
</intent-filter>
</activity>
El siguiente código funcionó para mí:
<intent-filter>
<action android:name="android.intent.action.VIEW"></action>
<category android:name="android.intent.category.DEFAULT"></category>
<category android:name="android.intent.category.BROWSABLE"></category>
<data
android:host="www.my.app.com"
android:path="launch"
android:scheme="http"></data>
</intent-filter>
Con el enlace de correo electrónico configurado como http://www.my.app.com/launch
.
Ref: Lanzamiento de la aplicación de Android desde el enlace o correo electrónico
Para mí, ninguna de las respuestas publicadas aquí funcionó. Probé decenas de sintaxis diferentes sin ningún éxito. Recibí un error de análisis al crear la aplicación a través de Cordova.
Finalmente encontré esta respuesta que me llevó por el camino correcto.
Así que creé un gancho en la carpeta PROJECT_ROOT/hooks/after_prepare/
llamada 010_add_intent_filters.sh
. Aquí está el contenido de este gancho:
!/usr/bin/bash
MANIFEST=./platforms/android/AndroidManifest.xml
grep -q pathPattern $MANIFEST && { print "Manifest already modified. Nothing to do."; exit 0; }
AFTER_LINE=''android:name="MainActivity"''
ADDITION=''/
<intent-filter>/
<action android:name="android.intent.action.VIEW"></action>/
<category android:name="android.intent.category.DEFAULT"></category>/
<category android:name="android.intent.category.BROWSABLE"></category>/
<data android:scheme="https" android:host="google.com" android:pathPattern=".*"></data>/
</intent-filter>
'';
sed -i -e "/${AFTER_LINE}/a${ADDITION}" $MANIFEST
Esto finalmente funcionó. No se requiere ninguna modificación de config.xml
si toma la ruta de enlace. Espero que esto ayude a alguien en necesidad.
PD: Estoy convencido de que Cordova es una gran tecnología, pero rara vez he visto una biblioteca tan mal documentada ... Lo increíble que es trabajar con ella es increíble.
Simplemente vaya a través de este documento de Google Deeplinking . Llegarás a conocer este concepto de vinculación profunda.
Espero que esto ayude a algún cuerpo.