Los enlaces de aplicaciones no funcionan en Android
Mi aplicación define los filtros de intención para manejar URL desde mi sitio definido por
<intent-filter android:autoVerify="true"> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <data android:host="www.host.com" android:scheme="http"/> </intent-filter> <intent-filter android:autoVerify="true"> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <data android:host="www.host.com" android:scheme="https"/> </intent-filter>
La aplicación detecta correctamente las URL del host correcto, pero consulta al usuario si desea abrirlas en la aplicación o en el navegador. He intentado usar la verificación de enlaces de la aplicación como se especifica aquí. Https://developer.android.com/training/app-links/index.html
- Facebook en Android: la aplicación de destino no se abre al hacer clic en el enlace
- Android: vinculación de aplicaciones - sólo admite ciertos caminos?
- Compatibilidad con varios subdominios con Enlaces de aplicaciones
- Cómo usar los enlaces de la aplicación para pasar el parámetro a la tienda de android para ser recuperado cuando la aplicación está instalada
- Crear vínculo profundo para la aplicación móvil
Como se ve en los registros de mi servidor, cuando se instala el dispositivo de la aplicación consulta /well-known/assetlinks.json y responde con un estado 200. Comprobación del archivo de activos digitales
Https: // digitalassetlinks.googleapis.com/v1/statements:list?source.web.site= https: // <dominio1>: <puerto> & relation = delegate_permission / common.handle_all_urls
API y no encontró errores.
El SHA256 en el archivo assetlinks.json se obtuvo utilizando
Keytool -list -v-keystore my-release-key.keystore
La misma .keystore de la que se firmó la aplicación.
Al adb shell dumpsys package d
devuelve que el estado de verificación del enlace es "ask", lo que significa que la verificación ha fallado. ¿Por qué la verificación falla?
- Applink no se puede resolver en el SDK de Facebook
- ¿Es posible implementar enlaces profundos desde el sitio web a la aplicación nativa hoy en día?
- ¿Cómo implementar Enlaces de aplicaciones de Android con dominios comodín?
- No se puede obtener el nuevo AppLinks para trabajar en iOS o Android
Para mí, se trataba de comprobar todos los conceptos básicos:
- Verifique que mi archivo assetLinks sea bueno con esta herramienta: (reemplace domain1: puerto con su dominio) https://digitalassetlinks.googleapis.com/v1/statements:list?source.web.site=https://domain1:port&relation=delegate_permission /common.handle_all_urls
- Prueba siempre con un APK firmado
- Asegúrese de que el dispositivo de prueba está ejecutando Android 6.0 o posterior (este es el que me mordió porque se me olvidó – en las versiones anteriores de Android, siempre obtiene la solicitud del usuario)
En mi caso, adb shell dumpsys package d
reveló que el packageName
se configuró incorrectamente en assetlinks.json
. Había usado el valor del atributo del package
de mi etiqueta de manifest
en AndroidManifest.xml
, pero debería haber utilizado el valor android.defaultConfig.packageId
en mi archivo build.gradle
.
Ventana de selección de la aplicación del sistema en dos casos
1) El usuario realiza cambios en las configuraciones relacionadas con los enlaces de apertura accediendo a la configuración> aplicaciones> icono de rueda de desplazamiento> abrir enlaces> seleccionar una aplicación> abrir enlaces soportados> elegir cada vez.
2) La aplicación predeterminada no está establecida por el usuario y la verificación automática no está habilitada en una de las aplicaciones compatibles de la aplicación
Creo que en su caso la verificación automática está habilitada, por favor, compruebe la configuración del usuario.
Oh Gawd para nosotros fue finales de línea de Windows!
Las pruebas realizadas con " https://digitalassetlinks.googleapis.com/v1/statements:list?source.web.site=https://www.port > & relation = delegate_permission / common.handle_all_urls" resultaron invaluables ya que nos dieron un "Could No analizar lista de instrucciones (no válido JSON) "error que nos llevó al problema.
SUGERENCIA: Fue bueno usar el botón "Guardar archivo" en el asistente de enlaces de aplicaciones de Android Studio en lugar de copiar y pegar como lo hicimos – de esa manera genera el archivo en sí y está garantizado que no tenga este problema.