Так что проблема кажется довольно простой. Я хочу импортировать внешний JS файл, преобразовать его в строку и использовать его для ввода Javascript в WebView.
Например, я попытался:
<WebView
source={{ uri: 'https://www.someurl.com/' }}
ref={(wView) => (setWebView(wView))}
javaScriptEnabled
domStorageEnabled
injectedJavaScript={
`
${String(contentScript)};
const ContentScript = contentScript();
`
}
onMessage={receiveMessage}
/>
Где функция contentScript выглядит так:
const contentScript = () => {
const exec = {};
// ... More code here
exec.test = () => {
window.ReactNativeWebView.postMessage('test invoked.');
};
return {
exec,
};
};
К сожалению, в большинстве случаев это не работает, так как возвращает пустой exe c. и иногда приводит к неожиданному коду, который может даже привести к ошибкам.
Поэтому я подумал о создании дополнительной компиляции, которая преобразует файл в текст и экспортирует строку. Что вы думаете? Что было бы лучшим решением для этого?
Я пытался найти решение по этому вопросу, но не смог найти какое-либо четкое решение этой проблемы.
К вашему сведению, я использую EXPO.