Confirmé una sospecha que tenía de que mi sitio web no funciona bien en Android WebView. Resulta que a partir de la API 29 (Android 10) y anteriores, en realidad falla espectacularmente, y esto es causado por JavaScript de terceros. Para API 29 específicamente, puedo ver los errores y, por supuesto, los informaré a los proyectos, pero para 28, a veces, todo el navegador se bloquea muy pronto, por lo que ni siquiera puedo decir qué pieza particular de JS está causando el problema ( Supongo que puedo eliminar todo manualmente y volver a agregarlo una pieza a la vez, pero ese es un proyecto para otro día).
Estos navegadores representan al menos 1/3 de mi tráfico (y tal vez mucho más, porque no sé qué porcentaje falla antes de que los análisis comiencen a informar), por lo que es un problema que debe solucionarse.
Además, si bien he podido verificar esto para Android WebView, sospecho firmemente que está sucediendo en navegadores de cromo de terceros (por ejemplo, MIUI o navegador Samsung).
Ahora, estoy ejecutando mi propio JS que está muy involucrado en la carga de los otros scripts, para mejorar el rendimiento, por lo que tengo un control muy detallado sobre lo que se carga y cuándo.
La pregunta es, ¿cuál es la forma preferida de manejar esto? ¿Busco algo en userAgent y luego cargo condicionalmente los scripts? Eso parece... bastante frágil. Supongo que hay alguna forma "estándar de la industria" de hacer esto, ya que debe ser un problema bastante común que el código de terceros no funcione en algunos entornos aleatorios, y no es que Android 10 sea tan antiguo.