Estoy usando react-native-webview v.11 y funciona muy bien a menos que intente adjuntar un archivo usando la vista web y Android simplemente falle.
He estado buscando por todas partes cómo resolver esto, pero no pude encontrar ningún recurso que pudiera ayudar. ¿Alguien se ha encontrado con este problema y lo ha solucionado? Las soluciones alternativas son más que bienvenidas.
Aquí está mi Webview cómo lo uso:
<WebView style={styles.webView} containerStyle={resolvedWebViewStyles} ref={webviewRef} decelerationRate="normal" // Make scrolling feel native on iOS source={{uri: reConstructedUri}} onLoadEnd={handleLoadEnd} injectedJavaScript={INJECTED_JAVASCRIPT} onMessage={() => {}} javaScriptEnabled />Tengo todos los permisos requeridos en el archivo de manifiesto como:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>Error:
FATAL EXCEPTION: main Process: fi.hsl.appdev, PID: 15154 java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { dat=content://com.android.providers.media.documents/document/image:32 flg=0x1 }} to activity {fi.hsl.appdev/fi.hsl.app.MainActivity}: java.lang.NullPointerException: Attempt to invoke interface method 'void com.facebook.react.bridge.Promise.resolve(java.lang.Object)' on a null object reference at android.app.ActivityThread.deliverResults(ActivityThread.java:5015) at android.app.ActivityThread.handleSendResult(ActivityThread.java:5056) at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:51) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:223) at android.app.ActivityThread.main(ActivityThread.java:7656) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)El problema ocurrió en la versión de Android 9 o 10
para resolverlo simplemente agregue androidLayerType={'hardware'} a los accesorios de WebView
<WebView androidLayerType={'hardware'} // other props... />