Tengo diferentes tipos de scripts que deben ejecutarse a través de WebView en la aplicación. Seguí muchas otras publicaciones relacionadas, pero esas no me ayudaron mucho. El primero se está ejecutando bien.
setTimeout(function() { window.ReactNativeWebView.postMessage(JSON.stringify(${window.CartVue.carts})) }, 2000);true;Para el segundo, ¿alguien puede ayudarme a ejecutar el siguiente código JavaScript en WebView?
async function extractItems(){ const responsePromise = await fetch('https://www2.hm.com/tr_tr/v1/carts', { credentials: 'include'}); const response = await responsePromise.json(); return response; } await extractItems();WebView
<WebView ref={webViewRef} source={{uri: webUrl}} onNavigationStateChange={webViewState => { // setWebUrl(webViewState?.url); }} javaScriptEnabled={true} domStorageEnabled={true} startInLoadingState={true} injectedJavaScript={jsCode} onLoadEnd={() => onLoadWebUrl()} renderLoading={() => <Loading visible />} onError={() => webViewRef.current.reload()} onMessage={event => { console.log("onMessage event ==> ",); if (cartUrl !== '') { onMessage(event); } }} />Después de luchar, encontré la solución para el segundo guión. Estoy usando el siguiente código para que se ejecute el segundo script. Espero que pueda ayudar a otros.
const jsCode = `setTimeout(() => { const extractCart = async () => { async function extractItems() { const responsePromise = await fetch('https://www2.hm.com/tr_tr/v1/carts', { credentials: 'include', }); const response = await responsePromise.json(); return response; } const res = await extractItems(); window.ReactNativeWebView.postMessage(JSON.stringify(res)); }; extractCart(); }, 2000);`;