¿Cómo abrir una aplicación instalada desde una URL de correo electrónico en Android?
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 .
Correo electrónico con enlace:
Selección para abrir la aplicación o el navegador:
Después de hacer clic en la opción de la aplicación, se abre la aplicación de Twitter:
He intentado 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 apropiada, por favor escriba algunos ejemplos aquí.
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 establecido como http://www.my.app.com/launch
.
Ref: Lanzamiento de la aplicación de Android desde enlace o correo electrónico
Sólo tienes que ir a través de este documento Deeplinking google. Usted llegará a conocer este profundo concepto de vinculación.
Espero que esto ayude a algún cuerpo.
Ex: Su url será algo como https://roadies.com y tiene el filtro de intenciones en manifesto como 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>
Para mí, ninguna de las respuestas publicadas aquí funcionó. He intentado decenas de sintaxis diferentes sin ningún éxito. Estaba recibiendo un error de análisis mientras construía la aplicación a través de Córdoba.
Finalmente encontré esta respuesta que me llevó en 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 en config.xml
si se toma la ruta de acceso al gancho. Espero que esto ayude a alguien en necesidad.
PS: Estoy convencido de que Cordova es una gran tecnología, pero rara vez he visto una biblioteca tan mal documentada … Qué doloroso es trabajar con ella es increíble.