Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Activo HTML externo no incluido en React Nativo en la compilación de producción para su uso por Webview

Estoy creando una aplicación de Android con React Native. Tiene una vista web que lee un archivo HTML localmente.

Este es el código que estoy usando para mostrar la visualización web.

  • Cómo encontrar Android SDK en Mac y agregar a PATH
  • ¿Cómo puedo saber si existe un paquete en particular en mi dispositivo Android?
  • Checkbox auto call onCheckedChange cuando se desplaza el listview?
  • Arm-linux-androideabi-gcc no puede crear un ejecutable - compilar ffmpeg para dispositivos android armeabi
  • ¿Cómo evitar que el cliente vea clases privadas internas en la biblioteca de Android?
  • Hook Android Sytem API relacionados con la salida de texto
  • <WebView ref="webview" source={require('./helloworld.html')} javaScriptEnabled style={styles.webView} /> 

    Esto funciona bien durante la compilación del desarrollo. El archivo HTML se carga en la vista web y se procesa bien.

    Pero no en la versión de Android / producción. La vista web está vacía y si examino mediante chrome: // inspeccionar, la vista web está vacía y no carga el archivo HTML.

    De lo que yo entiendo es que el React Native falla en empaquetar helloworld.html como un activo durante la generación de producción de Android. Me di cuenta de que funciona bien en iOS.

    ¿Alguna de idea de cómo arreglarlo?

  • Establecer ADB en modo TCP / IP: ¿dispositivo no encontrado?
  • Cumplimiento de FIPS para mi proyecto de Android
  • Lea el cuerpo de la respuesta en un interceptor de primavera de Android
  • Valor de conjunto de preferencias compartidas de android
  • Android Studio Gradle Configuración con nombre 'default' no encontrado
  • Contraer un grupo de forma programática en ExpandableListView
  • 3 Solutions collect form web for “Activo HTML externo no incluido en React Nativo en la compilación de producción para su uso por Webview”

    Según las discusiones aquí en https://github.com/facebook/react-native/issues/6004 , es un defecto conocido. Los activos no están incluidos en la compilación de producción de Android, pero funcionan bien en la versión de desarrollo.

    Una solución es almacenar activos en la carpeta de activos de Android manualmente y luego cargar el recurso utilizando

     <WebView source={{ uri: 'file:///android_asset/helloworld.html' }} startInLoadingState={true} /> 

    En la producción de iOS construir esta solución es el trabajo

     <WebView source={{ uri: 'helloworld.html' }} startInLoadingState={true} /> 

    En RN 0,40,

     require('./file.html') 

    Está fallando para mí en la variante de generación de compilación. Está bien en las compilaciones de depuración.

    Como solución, pude poner el archivo en el directorio de activos de android, y

     { uri: file:///android_asset/file.html } 

    Carga desde allí. Desafortunadamente para mi situación, el archivo html carga librerías de terceros remotas que hacen referencia internamente a los recursos agnósticos del protocolo: eg, //domain.com/file.json . Así que todos se convirtió en file://domain.com/file.json enlaces y, por supuesto, no. Yo mono patched XMLHttpRequest para cambiar // … a https: // … que resolvió ese problema, pero ninguna de las imágenes que libs intentan cargar, se cargará. Todos rotos. Y no he podido encontrar una manera de determinar cómo se ven las solicitudes para esas imágenes, para ver por qué se rompen o fallan a cargar.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.